私はかなり新しいVBAユーザーです。セル値に応じてVBAで複数のシートをナビゲートする
私は何かをコーディングしたいと思いますし、フォーラムのヒント/ヒントを見つける方法が見つからないので、あなたの親切な助けを求めるようになります。
私は、タイトルを持つスプレッドシートをたくさん持っていて、それらの人の経費を表しています。私の目標は、スプレッドシートを再編成したファイルを作成し、「ホーム」スプレッドシートで費用参照を抽出することです。関連するエクスポージャーは、同じ行に「Y」と表示されます。
「ホーム」スプレッドシートには、最初のページに人の名前があります。 "ポール"、 "マリー"、 "ピエール"など....同じ列に。
スプレッドシート「ホーム」の名前を見て、「名前付き」スプレッドシートのデータを「ホーム」にコピーできるコードを作成したいと考えています。
フォーマットは「名前付きスプレッドシート」と同じになりますので、常に同じ列を見ています。
私は問題に対処することができどのようにわからない、これまで
Sub Expenses()
Set wk=ThisWorkbok.sheets("Home")
Dim Name as String
Dim Expense as Integer
line_newexpense = 9
rowline = 10
start_l =34
Do While Name <> "#"
Line = wk.Cells(start_l,3)
Name = ThisWorkbook.Sheets("Home").Cells(line_newexpense,39).Value
Expense = ThisWorkbook.Sheets(Name).Cells(rowline,3).Value
For j=50 to 8
If ThisWorkbook.Sheets(Name).Cells(25,j).Value="Y" Then
Line = ThisWorkbook.Sheets(Name).Cells(3,j).Value
End If
rowline = rowline+1
Next j
line_newexpense = line_newexpense + 1
Loop
私は「範囲外のエラー9下付きの」遭遇、それを実行しようとすると問題がある次のことを試してみました、
事前にあなたのヒントに感謝します!
親切に敬意を表します。
こんにちは。あなたのコードを読みやすくするためにあなたの質問を編集しました。よくインデントされたコードは、一般的に、より質の高い回答を集めます。がんばろう! –
Hey Carolinaさんは 'Set wk = ThisWorkbok.sheets(" Home ")'ブックのスペルが間違っています。つまり、wkが設定されていないので 'Line = wk.Cells(start_l、3)'にアクセスできません。そして、jを50から8に反復しようとすると、 'j = 50から8 step-1'のようにjがj - 1になるように指定する必要がありますが、このjを後ろにして行線が進む。 –
「ホーム」と「名前」シートのスクリーンショットを追加してください – user3598756