2017-02-14 14 views
0

あるブックから別の既存のブックに情報をコピーしようとしましたが、間違った情報が追加されています。VBA 1つのブックから別のブックへのコピー

Sub Set_Open_ExistingWorkbook() 
Dim UserRoleWkb As Workbook, ConfigWkb As Workbook, UserRoleWkst As Worksheet, ConfigWkst As Worksheet 
Set UserRoleWkb = Workbooks.Open("C:\Users\cs\Desktop\Ar.xlsx") 
**Set ConfigWkb = ActiveWorkbook** 
Set UserRoleWkst = UserRoleWkb.Sheets("RS Users") 
**Set ConfigWkst = ActiveWorkbook.ActiveSheet** 

Dim i As Integer, j As Integer 
j = 10 'user role 
For i = 8 To 16 'config 
    If ConfigWkst.Cells(i, 2).Value <> "" Then 
     UserRoleWkst.Cells(j, 2).Value = ConfigWkst.Cells(i, 2).Value 
     j = j + 1 
    End If 
Next i 

End Sub 

**周辺のコードの部分が問題です。私がActiveWorkbookとActiveSheeetを呼び出すと、私は必要なものではなく、UserRoleWkst(ワークシート)から情報を取得しています:Configwkst。

私はこれを試してみましたが、ConfigWkstラインにエラーが発生しますと、コードが実行されません。

Sub Set_Open_ExistingWorkbook() 
Dim UserRoleWkb As Workbook, ConfigWkb As Workbook, UserRoleWkst As Worksheet, ConfigWkst As Worksheet 
Set UserRoleWkb = Workbooks.Open("C:\Users\cs\Desktop\Ar.xlsx") 
**Set ConfigWkb = ActiveWorkbook** 
Set UserRoleWkst = UserRoleWkb.Sheets("RS Users") 
**Set ConfigWkst = ConfigWkb.Sheets("Users") 

Dim i As Integer, j As Integer 
j = 10 'user role 
For i = 8 To 16 'config 
    If ConfigWkst.Cells(i, 2).Value <> "" Then 
     UserRoleWkst.Cells(j, 2).Value = ConfigWkst.Cells(i, 2).Value 
     j = j + 1 
    End If 
Next i 

End Sub 

すべてのヘルプは高く評価されています。ありがとう!

答えて

1

あなたはActiveWorkbookになるだろうし、別のブックを開くので、あなたは

Set ConfigWkb = ActiveWorkbook 
Set ConfigWkst = ConfigWkb.ActiveSheet 

Set UserRoleWkb = Workbooks.Open("C:\Users\cs\Desktop\Ar.xlsx") 
Set UserRoleWkst = UserRoleWkb.Sheets("RS Users") 
UserRoleWkbを開く前に、その参照を取得する必要がありたら
関連する問題