1

あるワークブックから別のワークブックに価格表を更新しようとしていますが、顧客にマスター価格表のマクロを送信したくありません...

マスターは、最終的に各ベンダーに対して 1 つのタブを持つことになります。

マスター コピーは、マクロなしで顧客に送信されます。

これが今の私のコードです..

エラー 1004 Paste Method failed が表示され続ける

'Now copy from the Update Master to the Cust Master...
mWrk = "A1:Z" & Trim(Str(TotRows))   <---TotRows is the total # of rows used



Application.CutCopyMode = XLCopy
Worksheets(WhichFile).Range(mWrk).Copy  <-- WhichFile has the value of the sheet name..


Dim mXLCopy As Workbook
Set mXLCopy = Workbooks.Open(ThisWorkbook.Path & "\Customer Master Price.xlsx")

' See if the sheet is already there. if so delete it.
Dim IsThere As Boolean
IsThere = False
For x = 1 To mXLCopy.Sheets.Count
    If UCase(mXLCopy.Sheets(x).Name) = UCase(WhichFile) Then
        IsThere = True
    End If
Next x
Application.DisplayAlerts = False
If IsThere Then
    mXLCopy.Sheets(WhichFile).Delete
End If

'
'Now add it & activate it..
mXLCopy.Sheets.Add().Name = WhichFile
mXLCopy.Activate

With mXLCopy.Sheets(WhichFile)
    Range(mWrk).PasteSpecial xlPasteAll, xlPasteSpecialOperationNone  <- Fails here
End With

Application.DisplayAlerts = True

mXLCopy.Save
mXLCopy.Close
Set mRange = Nothing
Set mXLCopy = Nothing

アイデアはありますか?先に行って、必要なら私をからかってください。でも、答えが必要です。私のものはどれも機能していません...

4

1 に答える 1

1

これが発生している理由は、mXLCopy.Sheets(WhichFile).Deleteコマンドがクリップボードをクリアしているためです。

最初にシートを削除して再作成し、次に貼り付ける範囲をコピーするようにコードを再配置する必要があります。

これがお役に立てば幸いです

于 2010-11-02T21:23:59.170 に答える