【发布时间】:2017-03-31 08:55:37
【问题描述】:
我正在使用 Excel 2010 编写一个 VBA 脚本,我想将值从一个工作表(“数据库”)复制到另一个工作表(“搜索”),前提是验证了由 IF 语句满足的特定条件。
我创建了一个模块,并在其中编写了以下代码:
Sub searchdatabase()
'1. declare variables
'2. clear old search results
'3. Find records that match criteria and paste them
Dim country As String
Dim category As String
Dim subcategory As String
Dim finalrow As Integer
Dim i As Integer 'row counter
Sheets("Search").Range("E11:P1000").ClearContents 'E11:P1000 e o range de celulas que ele vai apagar antes de correr o script. Se quiser mudar ou adicionar headers, tenho de mudar este range tambem.
country = Sheets("Search").Range("E5").Value
finalrow = Sheets("Database").Range("A200000").End(xlUp).Row
For i = 2 To finalrow
If Sheets("Database").Cells(i, 1) = country Then
Sheets("Database").Range(Cells(i, 1), Cells(i, 9)).Copy
Sheets("Search").Range("E600").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End If
Next i
End Sub
在 IF 语句中,我提到我想查看变量“国家/地区”是否与“数据库”表中的单元格匹配,如果匹配,请将其复制到“搜索”表中。但是代码似乎不起作用,返回错误
Run-time error '1004':
Application-defined or object-defined error
为了解决问题,我尝试更改代码并引用不同的工作表,但错误似乎仍然与此有关。
我做错了什么?
谢谢
【问题讨论】: