2016-04-04 18 views
0

すべての列見出しと行数が可変のブックが多数あります(可変総数シート)。マスターシート( "Sheet1")には、他のすべてのシートに書式を設定してコピーする必要がある大きな数のブロックがあります。シートにはすでにユニークなタイトルが付いていますので、シート番号の上に置くことはできません。数式のブロックをすべてのシートにコピーするExcel VBA

数式をハードコードする方が簡単ですが、それは別の日の主要な作業です(非常に多くの数式です)。

私は基本的に完全に別のブックから "Sheet1"に数式ブロックをコピーして貼り付ける必要があります。ここで私がこれまで持っているものです。

Windows("Step Formula Base.xlsx").Activate 
Columns("AK:BP").Select 
Application.CutCopyMode = False 
Selection.Copy 
Windows("NA - Sourcing - HR-IT-SLS Candidate Data %28All Candidates%29.xlsx"). _ 
    Activate 
Range("AK1").Select 
ActiveSheet.Paste 
Dim ws As Worksheet 
Set ws = ThisWorkbook.Sheets("Sheet1") 
Sheets.FillAcrossSheets_ 
    ws.Range ("AK:BP") 

私はかなりFillAcrossSheetsが届かない - それは簡単に修正することだろうと思ったが、それはその行に分割します。どんな考えや助け?

ありがとうございます!

+0

あなたは[FillAcrossSheets法上のMSDNの記事](https://msdn.microsoft.com/en-us/library/office/ff840684.aspx)を読みましたが、 –

+0

それは私が考えている場所ですが、問題は、シートの総数が変化した場合に機能する柔軟なコードにしたいということです。私はまた、それぞれのシートのタイトルを変更する可能性があるので(各タイトルが指定された配列を記入することはできないため)、タイトルを書きたいとは思わない。 – TwoHeartedKale

+1

すべてのシートを選択すると、すべてのシートに同じ処理が行われますので、貼り付ける前に行いますか?コーディングは必要ありません。 – findwindow

答えて

0

ここで作業コードです:

Windows("Step Formula Base.xlsx").Activate 
Columns("AK:BP").Select 
Application.CutCopyMode = False 
Selection.Copy 
Windows("NA - Sourcing - HR-IT-SLS Candidate Data %28All Candidates%29.xlsx"). _ 
    Activate 
Sheets.Select 
Range("AK1").Select 
ActiveSheet.Paste 
+0

あなたは、より適切に扱われるかもしれません。列全体(特に複数のシートにわたる)を広範囲にコピーして貼り付ける作業は、非常にリソースが多く、時間がかかります(Excelがクラッシュすることさえあります)。たとえば、 'Range(" AK1:BP100 ")'や、最後の行がどこにあるかをコピーするだけです。 –

+0

素晴らしいアイデア。問題は、ブロックの一部としてDateValueの式があることです。シートごとに異なるテキストの行までしか伸びないようにしたい。これを挿入して数式ブロックから壊すために使用できるVBAコードはありますか?これはおそらく基本的なことですが、私はそれについても明確な答えを見つけていません。 – TwoHeartedKale

関連する問題