如何解决此vba脚本中的文件不匹配问题

时间:2013-11-05 21:27:01

标签: excel vba csv excel-vba

我想将csv文件中的数据复制到excel工作表中。有11个csv文件。 到目前为止,我有这个(它是以前帖子的修改版本):

Sub importData()   
  Dim filenum(0 To 50) As Long
  filenum(0) = 052
  filenum(1) = 060
  filenum(2) = 064
  filenum(3) = 068
  filenum(4) = 070
  filenum(5) = 072
  filenum(6) = 074
  filenum(7) = 076
  filenum(8) = 178
  filenum(9) = 180
  filenum(10) = 182

  Dim sh1 As Worksheet
  On Error GoTo my_handler

  For lngPosition = LBound(filenum) To UBound(filenum)
    Windows(filenum & ".csv").Activate
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Windows("30_graphs_w_Macro.xlsm").Activate
    sh1 = Worksheets(filenum)
    sh1.Activate
    Range("A69").Select
    ActiveSheet.Paste
    Range("A69").Select

  Next lngPositionlngPositionlngPosition

my_handler:
  MsgBox "All done."
  Exit Sub
End Sub

但是,我在这里遇到类型不匹配:

Windows(filenum & ".csv").Activate

我不太清楚如何修复它。 除此之外,其余的代码看起来还不错吗?这是我的第一个VBA脚本......

1 个答案:

答案 0 :(得分:1)

Filenum是一个数组,因此您需要使用索引

来引用它

Windows(filenum & ".csv").Activate错了

更改为:

filenum(lngPosition) 

filenum(1)

你的Next也错了..

Next lngPositionlngPositionlngPosition

你必须打多次粘贴