我试图用宏更新多个工作表上的数据验证列表。您可以在下面找到代码。不幸的是,我在“.Add Type:= xlVali ....”行中收到“应用程序定义或对象定义”错误。
你能帮助我吗,为什么我会收到这个错误。
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Sheets
sh.Visible = xlSheetVisible
Next
Dim Xws As Worksheet
For Each Xws In Application.ActiveWorkbook.Worksheets
If Xws.Name = "Acilis" Or Xws.Name = "Admin_Sayfasi" Or Xws.Name = "Sheet4" Or Xws.Name = "Sheet2" Or Xws.Name = "Giris" Or Xws.Name = "Kunye" Or Xws.Name = "Kilavuz" Or Xws.Name = "Yonetim" Or Xws.Name = "SheetX" Or Xws.Name = "Butonlar" Or Xws.Name = "Sheet3" Or Xws.Name = "Ders_TEMP" Or Xws.Name = "Egitim Bilgileri" Or Xws.Name = "Mudurluk_TEMP" Or Xws.Name = "Egitmen_TEMP" Or Xws.Name = "Egitmen_List" Or Xws.Name = "Baskanlik_TEMP" Or Xws.Name = "Ekip_Uye_List" Or Xws.Name = "Deneme2" Or Xws.Name = "Uretim_TEMP" Or Xws.Name = "Personel_TEMP" Or Xws.Name = "Bilgiler" Or Xws.Name = "Sheet1" Or Xws.Name = "Puanlama" Or Xws.Name = "Deneme" Or Xws.Name = "Admin" Then
GoTo Next1
Else
XwsQ = Xws.Name
Worksheets(XwsQ).Select
Worksheets(XwsQ).Range("P22:P1111").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Ekip_Uye_List!$A$1:$A$" & LastRowB & ""
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next1:
Next
Dim Xws2 As Worksheet
For Each Xws2 In Application.ActiveWorkbook.Worksheets
If Xws2.Name <> "Acilis" Then
Xws2.Visible = xlSheetHidden
End If
Next
Application.ScreenUpdating = True
代码很长,就像这样。但我不能清楚这个错误。
很抱歉这样说,但这是我自己的错。不幸的是,我在发现LastRowB时发现了一个错误。错误是由于这个原因引起的。我在这里粘贴的第一个代码效果很好。在给出错误的行的LastRowB上出现问题。
在这里添加一个&
=&= = Ekip_Uye_List!$ A $ 1:$ A $“&
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Sheets
sh.Visible = xlSheetVisible
Next
Dim Xws As Worksheet
For Each Xws In Application.ActiveWorkbook.Worksheets
If Xws.Name = "Acilis" Or Xws.Name = "Admin_Sayfasi" Or Xws.Name = "Sheet4" Or Xws.Name = "Sheet2" Or Xws.Name = "Giris" Or Xws.Name = "Kunye" Or Xws.Name = "Kilavuz" Or Xws.Name = "Yonetim" Or Xws.Name = "SheetX" Or Xws.Name = "Butonlar" Or Xws.Name = "Sheet3" Or Xws.Name = "Ders_TEMP" Or Xws.Name = "Egitim Bilgileri" Or Xws.Name = "Mudurluk_TEMP" Or Xws.Name = "Egitmen_TEMP" Or Xws.Name = "Egitmen_List" Or Xws.Name = "Baskanlik_TEMP" Or Xws.Name = "Ekip_Uye_List" Or Xws.Name = "Deneme2" Or Xws.Name = "Uretim_TEMP" Or Xws.Name = "Personel_TEMP" Or Xws.Name = "Bilgiler" Or Xws.Name = "Sheet1" Or Xws.Name = "Puanlama" Or Xws.Name = "Deneme" Or Xws.Name = "Admin" Then
GoTo Next1
Else
XwsQ = Xws.Name
Worksheets(XwsQ).Select
Worksheets(XwsQ).Range("P22:P1111").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= & "=Ekip_Uye_List!$A$1:$A$" & LastRowB & ""
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
你可以请格式化你的代码示例,以便它可以相应地编译(Alt + D)
如果你以“工作”的方式向你提出问题,那么帮助你会更容易。