我一直收到1004的错误 - 我真的试图让我的头围绕着VBA,而且我有很多这样的错误!我录制了宏,然后编辑了它添加用户输入框和外卡temrms,我肯定会;
"*" & search & "*"
我的目标是在打开工作表SP时让宏打开用户输入框。然后搜索表“产品表”以获取用户输入。复制单元格内容,并粘贴到“SP”
中的单元格我的最终目标是然后搜索每个其他coloumn以获得相同的字符串并复制到表格的底部(下一个空行) - 但我想尝试自己试一试。
我被困在这个
Range("A1:I500").Select
这是我得到错误1004的地方
下面是我的脚本
Private Sub Worksheet_Activate()
'do input box
Dim search
search = InputBox("What are you searching for?")
'delete old data
Application.ScreenUpdating = False
Range("B7:I500").Select
'do autofilter
Sheets("Product Table").Select
Range("A1:I500").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$I$809").AutoFilter Field:=1, Criteria1:="*" & search & "*", _
Operator:=xlAnd
Columns("A:I").Select
Range("I1").Activate
Selection.Copy
ActiveSheet.Range("$A$1:$I$809").AutoFilter Field:=1
Sheets("SP").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F16").Select
Application.ScreenUpdating = True
End Sub
有谁知道为什么会这样?
答案 0 :(得分:0)
我记不起确切的语法,但我认为你需要关注你的表格:
Sheets("Product Table").Activate
在尝试选择范围
之前,先将其放入确定。我重新创建了错误,但不是和你在同一个地方。我收到错误:
Range("B7:I500").Select
你能仔细检查 - 我认为可能是因为你试图从Worksheet_Activate中选择当前工作簿中的数据而导致错误。
没错!正如我想的那样,正在引起错误,因为您正在尝试访问尚未激活的工作表中的单元格。为了解决它,您需要隐式引用Worksheet_Activate中加载的工作表名称,例如:
Sheets("MyWorkSheet").Activate
Sheets("MyWorkSheet").Range("B7:I500").Select
显然用正确的名称替换MyWorkSheet。