0

「UQP」ワークブックにコピーしている「プロパティ」ワークブックに 2 つのシートがあります。

PropertyCoverage -=VLOOKUP("PF",tPremium,2,0)他のテキストと単純な SUM 数式の間に数式を格納します。

xmlProperty - Houses テーブルtPremium(他のテーブルの中でも、XML ソースにマップされたすべてのテーブル)

これら 2 つのシートを UQP ワークブックに (同時に) コピーするtPremiumと、PropertyCoverage シートの数式の参照が自動的に に変わりますtAutoForms。これは、UQP ワークブックの別のテーブルです (数式とは関係ありません)。UQP ワークブックには、他にもいくつかのシートとテーブルがあります。

これが自動的に変更される理由はわかりませんが、少なくとも 1 つのシートにテーブルが含まれている場合、Excel が複数のシートをコピーできないという事実と関係があると思います。

以下の解決策を試しました(ここから参照)。ただし、同じ問題が発生します。新しいワークブックにコピーすると、問題は発生しません。... ActiveWorkbookなどに耐えてください。これは、機能するかどうかを確認するためのテストとしてのみ使用しました

Sub Copy_Worksheets()

    Dim wbMaster As Workbook
    Set wbMaster = Workbooks("UniversalQuoteProposal.xlsb")
    Dim TheActiveWindow As Window
    Dim TempWindow As Window
    With ActiveWorkbook
        Set TheActiveWindow = ActiveWindow
        Set TempWindow = .NewWindow
        .Sheets(Array("PropertyCoverage", "xmlProperty")).Copy Before:=wbMaster.Worksheets(1)
    End With
    TempWindow.Close

End Sub

これが私の元のコピーコードです:

Sub CopySheetsToMaster()

Dim wbMaster As Workbook
Set wbMaster = Workbooks("UniversalQuoteProposal.xlsb")

Dim sSheetName As String
sSheetName = Replace(ThisWorkbook.Name, ".xlsb", "")

Dim sSheets As Variant
sSheets = Array(sSheetName & "Coverage", "xml" & sSheetName)

'*** => This is where tPremium gets automatically changed to tAutoForms
ThisWorkbook.Worksheets(sSheets).Copy Before:=wbMaster.Worksheets(1)

wbMaster.ChangeLink ThisWorkbook.FullName, wbMaster.FullName, xlLinkTypeExcelLinks

End Sub

最後に、シートがコピーされた後に置換を実行することでこれを回避できますが、テーブルなどへの潜在的な数式参照を含む 7 ~ 10 個の他のワークブックを必要とする可能性があるため、よりクリーンな方法を見つけたいと考えています。存在する場合の解決策。

最後に、Excel 2010 を使用しています。

4

0 に答える 0