如果文件是excel格式,则宏不读取数据(仅当文件采用csv格式时才读取)

时间:2014-08-20 13:51:10

标签: vba

一个文件夹中有两个文件,宏应该读取这两个文件并创建另一个文件,将两者合并。

只要文件格式为CSV格式,这样就可以正常工作。

问题是,如果文件格式更改为Excel,则会抛出“下标超出范围”错误。

当我使用代码ActiveWorkBook.FileFormat检查文件格式时,在两种情况下(CSV和Excel),它给出的值为52,表示“这是一个Excel文件”。

我的问题:如何区分文件的格式?不知怎的,我必须使宏读取两个文件并创建组合文件,而不管文件格式如何。

trimmed(i) = Trim(temparray(i - 1))是发生错误的地方。

For Each curfile In fileList
    ediType = fileType(curfolder + "\" + curfile)

    Open (curfolder + "\" + curfile) For Input As #1
    flag = True
    Do Until EOF(1)

        Line Input #1, linefromFile

        temparray = Split(linefromFile, vbTab)

        For i = 1 To UBound(trimmed)

            trimmed(i) = Trim(temparray(i - 1))
            Debug.Print "The value of variable X is: " & trimmed(i) & temparray(i - 1)

        Next

1 个答案:

答案 0 :(得分:0)

1.您可以使用文件扩展名.xls或.csv来区分文件 2.执行此操作后,您可以保存.xls文件.csv并使用相同的代码进行读取。 我不认为相同的代码可以用来读取.xls文件,你必须使用excel范围和单元格来读取