Board logo

標題: [發問] 下拉式選單資料來源用變數 [打印本頁]

作者: li_hsien    時間: 2015-4-20 18:43     標題: 下拉式選單資料來源用變數

小弟想設計個下拉式選單

先用錄製巨集方式了解操作方式再做微調

但碰到了使用變數替換的問題

原作業環境為Excel 2007
操作下單選單使用了下方語法
Formula1:="='Substance'!$A2:$A$10"

但發現作業環境如果是Excel 2003
會發生錯誤,選單資料好像不能直接用別張Sheet

後來搜尋到可用INDIRECT的方式

錄製巨集得到下方語法
Formula1:="=INDIRECT(""'Substance'!$A2:$A10"")"

我想將A2:A10中的10改換成變數來操作
e.g. Formula1:="=INDIRECT(""'Substance'!$A2:$A"" &  final_substance  & ")""

此列舉語法錯誤

但不知怎麼修改語法

煩請各位協助解惑

謝謝!!!
作者: lpk187    時間: 2015-4-20 21:50

回復 1# li_hsien


    不能類似像下列表示法嗎?
a = Sheets("Substance").[A2].End(xlDown).Row
ComboBox1.RowSource = "Substance!A2:A" & a

下面這句
Formula1:="=INDIRECT(""'Substance'!$A2:$A"" &  final_substance  & ")""

雙引號的用法不對,雙引號在用都是雙雙對對的,另在巨集中有單引號( ' )出現"皆視為註解",所以Substance這個工作表可以把單引號拿掉直接用 Substance!
不過我還是幫你修正上列語句
Formula1:="=INDIRECT(""Substance!$A2:$A" & final_substance & """)"
作者: li_hsien    時間: 2015-4-21 14:46

本帖最後由 li_hsien 於 2015-4-21 14:54 編輯

回復 2# lpk187

謝謝您的協助!!!

語法可以了

但是他的雙引號對應關係我看不到懂

[attach]20748[/attach]
我用顏色將雙引號區分出來,不知是不是這樣兩兩相對


另外我這個應該也不是您說的下拉選單
我是在儲存格中用資料驗證的方式
操作大致如下
  1. With Worksheets("GP規格比對表").Range("E4:E" & Range("C65536").End(xlUp).Row).Validation
  2.         .Delete
  3.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  4.         xlBetween, Formula1:="=INDIRECT(""Temp_Substance!$A2:$A" & final_substance & """)"
  5.         .IgnoreBlank = True
  6.         .InCellDropdown = True
  7.         .InputTitle = ""
  8.         .ErrorTitle = ""
  9.         .InputMessage = ""
  10.         .ErrorMessage = "請以下拉選單方式選取"
  11.         .IMEMode = xlIMEModeNoControl
  12.         .ShowInput = True
  13.         .ShowError = True
  14.     End With
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)