2010-06-22 16 views
0

我正在製作一個電子表格,提供用戶輸入的列。每個工作表都根據用戶提供的月份而變化。在Excel中換行文字的替代方法?

If Target.Value = "January" Then 
    ActiveSheet.Range("K7:K44").Value = ActiveSheet.Range("BA7:BA44").Value 
ElseIf Target.Value = "February" Then 
    ActiveSheet.Range("K7:K44").Value = ActiveSheer.Range("BB7:BB44").Value 
End If 

現在實際的宏是清潔的,但不管怎麼說..現在,如果說電池BA7包含不適合K7客戶想要一個「下拉框」,以顯示在K7像數據驗證字符串名單。我已經搜索和搜索,我不認爲這是可能的,但客戶說,他們已經在某個地方見過它。

因此,他們不想包裝文本,他們不想縮小適合..他們希望他們的下拉箭頭。有沒有可能的方法來做到這一點?

回答

1

AFAIK下拉驗證寬度由單元格寬度控制,因此您無法通過下拉菜單執行此操作。

我認爲一種(醜陋)的方式來做類似於你的客戶看到的東西是創建一個VBA控件來顯示值,並將其設置爲隱藏。

然後鉤上Worksheet_SelectionChange(ByVal Target As Range),檢查目標是否在預期範圍內,將控件放置在單元格下方,將其Value屬性更改爲單元格內容並顯示它。否則,只需再次隱藏它。

編輯:

需要每個工作表只有一個組合框或列表框(我不知道如果有足夠的所有工作表)。您可以更改TopLeftCell屬性以在想要的位置顯示它。

+0

那麼,在10個不同的工作表上,37行的難度會有多大?我似乎無法弄清楚如何在VBA中填充TextBox。我使用運行'.Range(「K7:K44」)的'Sub PopulateMonthlyMessages(ByVal Month As String)'。Value = .Range(「BA7:BA44」)。Value' – 2010-06-22 18:32:22

0

這是一種貧民窟,但也許他們在談論這個:如果你去數據 - >驗證...然後允許和列表,你可以選擇通過選擇一個單元格作爲它的參考本身自己的來源。然後,您將看到一個下拉框,其唯一目的是在自己的單元格中顯示值,並且僅在選中單元格時纔可見。

這似乎適用於某些值,但對於很長的條目,它仍會截斷信息。我只能猜到這一點。如果不是這樣,那麼我有興趣看看答案是什麼。