私はVBAをかなり新しくしていますが、Pythonを書くことで中程度の快適さを持っています。変数の宣言は、2つの間で少し異なっており、私はこれが私の闘いの大部分が存在するところだと信じています。実行時エラー5とループ用の一般的なコピー/貼り付け
これは、2つの部分から頭痛である:最初の頭痛は、私は以下のコードのセクションを実行しようとすると、私は「:無効なプロシージャ呼び出しまたは引数をランタイムerror'5' 」を取得している)
cll.Offset(0, 1).Copy (Worksheets("Sheet7").cells(Rows.Count & "L").End(xlUp).Row)
"コピー"を変数として設定し、その変数を呼び出そうとしましたが、同じエラーが表示されました。私は多くのチュートリアルと、列内の最後の空白セルの参照についてのガイドを見てきました。
2.)私が作業しているコードの大きな部分は、ドロップダウンリスト(50状態を参照するためだけに使用されています)、そのリスト内の状態を参照するコード、counta
ワークシート関数、およびすべての州にすべての郡がある別のワークシート。
特定の州の郡を別のワークシート(「Fips_Reference」)から自分のアクティベートシート(「Sheet7」)にコピーします。そこから私はcounta
(pcount)を参照し、実際に何個のセルにデータが含まれているかを調べる必要があります。たとえば、counta
が= 2の場合、列が上から下へ「郡1」「郡1」「郡2」「郡2」というように、各郡を2回貼り付ける必要があります。私は数日間ループとif文を入れ子にしようと努力し続けており、困惑し続けています。
Sub fipsloop2()
pcount = WorksheetFunction.CountA(Worksheets("StateSource").Range("b3:b8"))
Dim cll As Range
Dim rng As Range
Dim fip As Range
Dim state As Range
Set rng = Worksheets("FIPS_Reference").Range("c2:c3280")
Set fip = Worksheets("FIPS_Reference").Range("d2")
Set state = Worksheets("Sheet7").Range("C1")
For Each cll In rng
If cll = state Then
cll.Offset(0, 1).Copy (Worksheets("Sheet7").cells(Rows.Count & "L").End(xlUp).Row)
ActiveCell.Offset(1, 0).Select
'If pcount > 1 Then
End If
Next
End Sub
私は状態の名前が含まれているセルの範囲を見て、その後、状態の名前は私のリストに状態が一致するかどうかを確認するために検索するため...各ループに配置されています。一致するものがあれば、右側にオフセットして、アクティブなワークブックのセルにcountyの値をコピーします。私はしばらくの間、それぞれとループとロジックの組み合わせを試しましたが、私はそれが私を傷つけているVBAへの私のナイーブであると信じています。
何か助けがあれば、事前にありがとう!
行全体をコピーしようとしていますか? 'cll.offset(0,1).EntireRow.Copy'が動作するかもしれません。今は、行に貼り付けようとする単一の値があります。どのように貼り付けたいのですか? – BruceWayne
@ BruceWayne私はそのセルだけをコピーしたいです。私は問題なくvbaを通してその参照を引き出すことができました。しかし、私は1つのセルに値を貼り付けることしかできず、ループしたときに以前と同じセルにペーストしました。そのため、貼り付けたい列の最後の空のセルを探すためのコードスニペットを追加したいのです。 –