如何简化复制内容代码?

时间:2014-05-27 02:43:11

标签: excel excel-vba excel-2010 export-to-excel vba

我有一系列代码来跟踪文件路径并从多个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+文件来跟踪数据......

2 个答案:

答案 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”