Ich versuche, Informationen aus einer Arbeitsmappe in eine andere vorhandene Arbeitsmappe zu kopieren, aber die falsche Information wird hinzugefügt.VBA Kopieren von einer Arbeitsmappe in eine andere Arbeitsmappe
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
Der Teil des Codes mit dem ** um es herum ist das Problem. Wenn ich das ActiveWorkbook und ActiveSheeet aufruft, greift es auf die Informationen aus dem UserRoleWkst (Arbeitsblatt) und nicht auf das, was ich wollte: Configwkst.
ich dies versucht haben, aber Fehler auf der ConfigWkst Linie zu erhalten und der Code wird nicht ausgeführt:
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
Jede Hilfe ist willkommen. Vielen Dank!