使用来自其他数据范围的值填充一系列数据

时间:2016-04-21 18:17:45

标签: excel vba

如何使用其他数据范围的值填充一系列数据?

我在所有源工作簿单元格中都获得了B6的值。

Sub Read_External_Workbook()

'''''Define Object for Target Workbook
Dim Target_Workbook As Workbook
Dim Source_Workbook As Workbook
Dim Target_Path As String

'''''Assign the Workbook File Name along with its Path
'''''Change path of the Target File name
Target_Path = "D:\Profit&Loss March Import.xlsm"
Set Target_Workbook = Workbooks.Open(Target_Path)
Set Source_Workbook = ThisWorkbook

   '''''With Target_Workbook object now, it is possible to pull any data from it
'''''Read Data from Target File


'''''Client
Target_Data = Target_Workbook.Sheets(3).Range("B6:B19,B26:B38,B39:B39,B42:B49,B50:B50,B54:B58,B59:B59,B86:B99")
Source_Workbook.Sheets(76).Range("K11:K24,K27:K39,K43:K43,K47:K54,K59:K59,K63:K67,K69:K69,K73:K86") = Target_Data

   '''''Process Completed
MsgBox "Task Completed"

End Sub

1 个答案:

答案 0 :(得分:0)

将范围分解为列表并迭代它

Dim sSource() As String
sSource = Split("B6:B19,B26:B38,B39:B39,B42:B49,B50:B50,B54:B58,B59:B59,B86:B99", ",")

Dim sTarget() As String
sTarget = Split("K11:K24,K27:K39,K43:K43,K47:K54,K59:K59,K63:K67,K69:K69,K73:K86", ",")

Dim vData As Variant

For i = LBound(sSource) To UBound(sSource)
    vData = Target_Workbook.Sheets(3).Range(sSource(i))
    Source_Workbook.Sheets(76).Range(sTarget(i)) = vData
Next i