返回列表 上一主題 發帖

組合方塊寫入VBA問題

如副件所指VBA可行嗎請指導謝謝
gca78000 發表於 2014-11-4 12:56


Sheets("Sheet1").ComboBox1.LinkedCell = "$A$2"

TOP

本帖最後由 luhpro 於 2014-11-7 03:03 編輯
感謝luhpro 大大指導但小弟測試好像步行耶請在指導謝謝
gca78000 發表於 2014-11-5 12:17

Sheets("Sheet1").ComboBox1.LinkedCell = "清單!$A$2"

話說你的範例檔沒有 Sheets("清單"),
我以為你是要 Link 到 同一個Sheet(Sheets("Sheet1")) 的 [A2] 資料.

另外你的 Combobox只要一個值(清單!$A$2)嗎?
還是幾個資料驗證的清單?
若是:
假設 Sheets("清單 ") 的 B2 ~ B4 = 張三,李四,王五
Private Sub Workbook_Open()
  With Sheets("清單")
    Sheets("Sheet1").ComboBox1.ListFillRange = "清單!" & Range( .[B2],  .[B2].End(xlDown)).Address
  End With
End Sub
則清單內容會有 張三,李四,王五 等3個選項.

TOP

luhpro大大真是高招小弟甘拜下風謝謝耐心指導小弟可否再問一題如下列
Private Sub Worksheet_SelectionCha ...
gca78000 發表於 2014-11-7 19:27


???
看你用 Target.Address 我猜是要對某些儲存格做處理,
但你寫的 : a3-a7+e3e7+g3-g7+i3-i7+k3-k7+m3-m7 怪怪的.

e3e7 是哪個(或哪些) 儲存格位址的表示方式?
或是要用 e3:e7 (範圍儲存格)嗎?
另 a3-a7... 又加又減的,
是要對儲存格內容做計算,
還是要對儲存格位址作增減?

我猜測你可能是要當點擊了 :
a3,a7,e3,e7,g3,g7,i3,i7,k3,k7,m3,m7
等儲存格就要顯示UserForm1.

若是這樣我們可以先歸納這些儲存格位址的規律:

1. 都落在第 3 列與第 7 列 -> 列的表示方式為 Range.Row.
這樣只要一行 :
  If Target.Row=3 Or Target.Row=7 Then
就能實現.

2. 欄序分別為 a,e,g,i,k,m 這 6 欄,則用 :
If Target.Column=1 Or Target.Column=5 Or Target.Column=7 Or Target.Column=9 Or Target.Column=11Or Target.Column=13 Then
來實現.

但這樣寫程式碼太長了,
對於非連續或不具規律性多組數字的判斷可以用
Select Case Target.Column
  Case 1,5,7,9,11,13
    ...
end select
來實現,
好處是美觀, 具結構性易除錯及維護.

綜上所述程式可以修改如下:
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.   Dim bShow As Boolean
  3.   
  4.   bShow = False
  5.   With Target
  6.     If .Row = 3 Or .Row = 7 Then
  7.       Select Case .Column
  8.         Case 1, 5, 7, 9, 11, 13
  9.           bShow = True
  10.       End Select
  11.     End If
  12.   End With
  13.   If bShow Then UserForm1.Show
  14. End Sub
複製代碼

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題