私は運が悪い過去1週間のコードを取得しようとしています。私は様々な修正を試みましたが、最終的には異なるエラーコードが与えられます。ちょうどかどうかを確認するためにVBA - 条件が満たされている場合、別のブックの複数のシートにテンプレートシートをコピー
は私がなっていた最初のエラーが
だから、私はちょうど列全体を経由し、これを変更し、このプロパティまたはメソッドをサポートしていませんSet rng = Intersect(.UsedRange, .Columns(2))
オブジェクトとありましたそれは動作します:
Set rng = Range("B:B")
、私はそれを介して読み取り、それはエラーコードのエラーが表示されます:ランタイムエラー1004申し訳ありませんでした.24 James.xlsx
移動、名前変更、削除が可能ですか?
このコード行では、ハイパーリンクが別のブックをその名前で開く必要があると想定していますが、そうではありません。要約シートのハイパーリンクは、同じマスターブックの他のシートにリンクします。テンプレートは別のブックにのみ存在します。
これを克服するために、この行を変更してみて、テンプレートブックを開いて最初のシートにタブ名だけをコピーして、次の行にエラーを表示するコード
TemplateBook.Sheets("Red").Copy ActiveSheet.Paste
、FOL、マスターワークブックのシートに切り替え、私はいくつかのより多くのバリエーションを試してみましたが、私はちょうどそれが正しいテンプレートをコピーすることができません範囲外の添字
Sub Summary() Dim MasterBook As Workbook Set MasterBook = ActiveWorkbook With MasterBook Dim rng As Range Set rng = Range("B:B") End With Dim TemplateBook As Workbook Set TemplateBook = Workbooks.Open(Filename:=" C:\Users\Desktop\Example template.xlsx") Dim cell As Range For Each cell In rng If cell.Value = "Red" Then cell.Offset(0, -1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True TemplateBook.Sheets("Red").Copy ActiveSheet.paste ElseIf cell.Value = "Blue" Then cell.Offset(0, -1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True TemplateBook.Sheets("Blue").Copy ActiveSheet.paste End If Next cell End Sub
を言って同じマスターブックのシートを修正するためのリンクをクリックし、テンプレートを貼り付けます。私はあなたのコードに加えられた変更について
とそれを名前を変更は、しかし、それがコピーされていない、私はあなたが提案された変更を行い、それがエラーなしで通る、ご回答いただき、誠にありがとうございます既存のシートに貼り付ける代わりに、列Bと同じ順序で赤または青のラベルが付けられた新しいシートを作成し、それらの新しいシートにテンプレートを貼り付ける。正直言って、作成されている新しいシートに隣接するセルの名前(列A)が表示され、そのセルにハイパーリンクされていると、これはもっとうまくいくはずです。これは、あらかじめ列Aの各名前に対して手動で新しいシートを作成するより多くの時間を節約するでしょう。 – kira123
@ kira123これはあなたの投稿にしたがっていたもので、あなたが作成したものです。ではない ?なんでしょう ? ** Edit 1 **の下のループを試してみてください。 –
私はそれをはっきりと説明していないかもしれません。 。テンプレートブックを開き、3.赤のテンプレートシートを開き、シート全体をコピーして、5.元のMasterBookに戻って、6.色の隣にあるセル(列A)のハイパーリンクされた名前をクリックします。列B)7.これは、同じマスターブック内の別の既存のブランクシートに移動します。8.その色のテンプレートを貼り付けます。 9.正しい色テンプレートを他のシートに貼り付けることによって、このプロセスを繰り返します。 – kira123