我試圖用VBA純粹創建數據驗證單元格。問題是,如果驗證列表中的 項目之一是包含逗號的Excel公式(例如以下代碼中的IF()),則會生成錯誤。產生Excel VBA - 驗證數據和逗號分隔字符串
Dim str As String
str = "=IF(SUM(A1:A2) = 0, ""Zero"", SUM(A1:A2)) , Item 2 , Item 3 , Item 4"
s1.Range("B6").Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=str
錯誤(運行時錯誤1004),因爲它限定了串在第一逗號,所以確認的第一項是"=IF(SUM(A1:A2) = 0"
。我希望有逗號的轉義字符(如C中的\)來避免這種情況。 我想驗證列表中顯示爲這樣:
<result of IF() function>
Item 2
Item 3
Item 4
注:我不能使用範圍的驗證數據。如果用戶刪除了該電子表格將被破壞的範圍。
發佈問題時,儘可能提供儘可能多的信息。產生的錯誤是什麼?錯誤是否明確表明它存在轉義字符問題或者是您的推理?請編輯答案以包含錯誤。 –
至少在Excel 2003中,我不相信你可以在驗證中混合公式和列表。看看你是否可以做你想在Excel中完成的事情(也許在宏記錄器上)。你可以擴展你的公式來測試其他項目,但是如果這很重要,你不會得到一個下拉框。 –
你可以使用一個範圍,並將其放在一個xlveryhidden和鎖定的工作表上,除非你的用戶精通vba,他們甚至不會知道它的存在。 – scott