将数组保存到新工作簿

时间:2018-04-04 10:13:09

标签: arrays excel vba excel-vba

场景:我有一个包含多个工作表的工作簿。我试图使用一个函数(在sub中调用)来导出数组来自某些工作表的数据。在函数之前使用工作表中的内容创建数组:

If ws.Name = "AA" Then
            expaa = ws.UsedRange.Value
End if

其中expaa先前已定义为变体。

我正在使用的函数显然已经完成运行,但保存的新文件的输出很奇怪:第一行由于某种原因被分成2(而其他所有都保持不变)。

这是我正在使用的功能:

Function Exporter(arr As Variant, y As String, OutPath As String) As Variant
    Dim lrow As Long, lColumn As Long
    Dim w2 As Workbook
    Dim d As Date

    Workbooks.Add
    Set w2 = ActiveWorkbook

    w2.Worksheets(1).Range("A1").Resize(UBound(arr, 1), UBound(arr, 2)) = arr       
    Application.DisplayAlerts = False
    w2.SaveAs Filename:=OutPath & "\" & y, FileFormat:=6
    Application.DisplayAlerts = True

    w2.Close True

End Function

我从主要的子部门打电话:

If aa_name <> "" Then
    Exporter expaa , "aa_OK", wbpath
End If

其中aa_name是用于检索路径的文件的名称。

Obs: wbpath变量是一个包含我的主工作簿路径的字符串(因此新文件保存在同一位置)。

问题:可能导致我输出的第一行被拆分的原因是什么?怎么能修好?

Obs2:我知道这可以通过复制过程完成,并循环遍历数组等等。我甚至让它与其他方法一起工作。这篇文章只是为了解我当前代码的错误。

Obs3:关于将要传递的数据:它是天数,标识符和数据的矩阵,例如:

               Item1      Item2     Item3
01/01/2000      1           1         2
02/01/2000      1           2         1
03/01/2000      2           2         2

大约有2000行和3000列。

UPDATE:多次重新测试代码后,当文件保存为csv时,第一行的数据似乎只会被分割(当粘贴数组时,输出正常) 。关于可能是什么原因的任何想法?

0 个答案:

没有答案