我有一系列代码来跟踪文件路径并从多个excel文件中追踪数据。
我想知道有什么方法可以修改代码,所以我不需要通过更改单元格值来保留复制和粘贴相同的代码吗?
以下是代码:
Sub FetchData()
Dim shDestin As Worksheet
Application.ScreenUpdating = False
Set shDestin = ThisWorkbook.Sheets("Sheet1")
CopyFileContent Range("B11").Value & shDestin.Range("A1").Value, _
shDestin, 11
CopyFileContent Range("B12").Value & shDestin.Range("A1").Value, _
shDestin, 12
CopyFileContent Range("B13").Value & shDestin.Range("A1").Value, _
shDestin, 13
CopyFileContent Range("B14").Value & shDestin.Range("A1").Value, _
shDestin, 14
CopyFileContent Range("B15").Value & shDestin.Range("A1").Value, _
shDestin, 15
CopyFileContent Range("B16").Value & shDestin.Range("A1").Value, _
shDestin, 16
CopyFileContent Range("B17").Value & shDestin.Range("A1").Value, _
shDestin, 17
CopyFileContent Range("B18").Value & shDestin.Range("A1").Value, _
shDestin, 18
CopyFileContent Range("B19").Value & shDestin.Range("A1").Value, _
shDestin, 19
有没有像它可以设置范围B11:B19
然后shDestin 11:19
?
这将是麻烦,因为将来我可能在文件夹中有50+文件来跟踪数据......
答案 0 :(得分:2)
你也可以尝试 For Each ,我觉得它更具可读性。
Dim cel As Range
For Each cel In Range("B11:B19") '~~> or any range you want
CopyFileContent cel.Value & shDestin.Range("A1").Value _
, shDestin, cel.Row
Next
答案 1 :(得分:1)
For index As Integer = 11 To 19
CopyFileContent Range("B" & cstr(index) ).Value & shDestin.Range("A1").Value, shDestin, index
Next i
"B" & cstr(index)
将在循环中转换为“B11”到“B19”