从不同的工作簿复制不同范围的数据

我正在写一个macros从其他工作簿中的不同工作表中复制数据,然后粘贴到另一个工作表。 问题是由于不同工作表中的数据格式不同,所以我需要为不同的工作表提取不同范围的数据。 但是我的脚本只能从我设置的一个特定范围中提取, if我为它设置的话,它会跳过其他的。

这里是我select不同范围的数据的代码,它只pipe理复制所有文件的A1到B2的范围:

 ' Change this range to fit your own needs. With mybook.Worksheets(1) Set sourceRange = .Range("A1:B2") ' Change Range if B1 value is "Host Name" If .Range("B1") = "Host Name" Then '// Here lets Find the last row of data wSlastRow = .Rows(.Rows.Count).End(xlUp).Row '// Now Loop through each row For X = 4 To wSlastRow Set sourceRange = .Union(Range("B" & (X)), Range("C" & (X))) Next X End If End With 

以下是不同工作表格式的截图:

第一张图片反映了我上面的情况,当macros在B1上读取“主机名”时,应该从第4行开始复制列B和C,直到find一个空行。

在这里输入图像说明

第二张照片是A1和A2单元格中包含数据的正常情况。

在这里输入图像说明