我如何解决此vba脚本中的文件不匹配 [英] How do i resolve the file mismatch in this vba script

查看:153
本文介绍了我如何解决此vba脚本中的文件不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like to copy data from a csv file into an excel worksheet. There are 11 csv files. So far I have this (it is a modified version from a previous post):

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

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

However, I am getting a type mismatch over here:

Windows(filenum & ".csv").Activate

我不太确定如何解决它. 除此之外,其余的代码看起来还可以吗?这是我的第一个VBA脚本...

I am not too sure how to fix it. Other than this, does the rest of the code look ok? This is my first VBA script...

推荐答案

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

Filenum is an array, so you need to refer to it using an index

Windows(filenum & ".csv").Activate是错误的

更改为:

filenum(lngPosition) 

filenum(1)

同样,您的Next是错误的.

Next lngPositionlngPositionlngPosition

您必须多次粘贴粘贴

这篇关于我如何解决此vba脚本中的文件不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆