2016-07-26 93 views
1

我有一個VBA宏,用於從主目錄複製兩張表單(一個表單用於收集數據,一個表單用於查找下拉菜單)工作簿,填充新的工作簿並將其保存。在Excel中通過VBA設置下拉列表驗證

由於下拉數據驗證列表在複製工作表時會更新其鏈接,因此我必須重置驗證以引用新的工作表Lookups。一旦它到達.Validation.Add Type...

With wsNew.Cells(19, 5) ' Display on web schedule 
    .Value = wsData.Cells(11, iColCount).Value 
    .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Lookups!$B$2:$B$3" 
    .Validation.IgnoreBlank = True 
    .Validation.InCellDropdown = True 
End With 

,它以1004(「應用程序定義或對象定義的錯誤打破:目前,我想這(與不同的座標,當然) 「)錯誤。

如果有什麼辦法沒有,它會自動更新數據驗證這將是理想的工作表複製,但如果沒有,沒有人知道是什麼導致了這些代碼打破,以及如何解決它?

回答

1

刪除任何先前的數據驗證,然後再嘗試創建一個新的數據。

With wsNew.Cells(19, 5) ' Display on web schedule 
    .Value = wsData.Cells(11, iColCount).Value 
    .Validation.DELETE 
    .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Lookups!$B$2:$B$3" 
    .Validation.IgnoreBlank = True 
    .Validation.InCellDropdown = True 
End With 
+0

宏偉!這做了伎倆 - 謝謝! –