2017-07-20 18 views
1

VBAは新しくありません。 1つのシートを別のExcelファイルから取り出して、アクティブなワークブックに配置しようとしています。私はそうしましたが、コードを実行するたびに、プログラムが引き続き使用されるので無限の枚数を追加するのではなく、古いシートを新しいシートに置き換えるように設定したいと思います。どんな助け?書かれたとして、それが余計に見えたので、私は、あなたのループを取り出したExcelワークシートをVBAを使用して別のファイルのシートに置き換えます。

Private Sub CommandButton2_Click() 


    Dim sh As Worksheet, wb As Workbook 

    Set wb = Workbooks("QI VBA.xlsm") 
    For Each sh In Workbooks("Example.xlsx").Worksheets 
     If sh.Name = "Sheet1" Then 
     sh.Copy After:=wb.Sheets(wb.Sheets.Count) 

    End If 
Next sh 

End Sub 

答えて

1

:ここ

は、私が現在使用しているコードです。

Private Sub CommandButton2_Click() 

    Dim wb as Workbook 
    Set wb = Workbooks("QI VBA.xlsm") 

    If WorksheetExists(wb, "Sheet1") Then 

     Application.DisplayAlerts = False 
     wb.Worksheets("Sheet1").Delete 
     Application.DisplayAlerts = True 

    End If 

    Workbooks("Example.xlsx").Worksheets("Sheet1").Copy After:= wb.Sheets (wb.Sheets.Count) 

End Sub 

Function WorksheetExists(wb As Workbook, sWSName As String) As Boolean 

'================================================================================================================================= 
'== Name: WorksheetExists 
'== Purpose: To check if a worksheet exists in a given workbook 
'== Notes: On Error Resume Next only used to make this a quicker process ... 
'    try to name of sheet passed, if it fails, sheet doesn't exist 
'================================================================================================================================= 

On Error Resume Next 

Dim ws As Worksheet 
Set ws = wb.Worksheets(sWSName) 

WorksheetExists = Err.Number = 0 

On Error GoTo 0 

End Function 
+0

「コンパイルエラー:ByRef引数の型が一致しません」というエラーが表示されます。何がうまくいかなかったかに関する提案はありますか? –

+0

@ a.powell - ブックオブジェクトを宣言するのを忘れました。今すぐやってみて下さい。 –

+0

えええええええええええええええええええええええええええええええええええええ: –

関連する問題