0
Excel 2010を使用して、あるシート(「データベース」)から別のシート(「検索」)に値をコピーするVBAスクリプトを作成していますIF Statementによって満たされた特定の基準が検証されます。VBAでIFステートメントを使用してシートから別のシートに値をコピー
私は次のコードを書いたモジュール作成しました: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
を、私は変数「国」の中の細胞と一致するかどうかを確認したいことを参照しています"データベース"シートと、もしそうなら、それを "検索"シートにコピーしてください。しかし、コードは、私は、コードと参照異なるシートを変更しようとしましたが、エラーがこの依然に関連すると思わ問題を解決するために、エラー
Run-time error '1004':
Application-defined or object-defined error
を返し、動作していないようです。
私は間違っていますか?
はこのラインであなたの
をあなたは* * '、') '(細胞()'、 '行()'、 '列の範囲(範囲を限定していない少し余分な情報については、()'等)をスプレッドシートと比較すると、VBAはあなたが 'ActiveSheet 'が何であれ、それを実行したいと考えます。 OP、あなたは 'Sheets(" Search ")がアクティブなシートなのでエラーが出ますが、Sheets(" Database ")を使って範囲を紹介しています。 – BruceWayne