场景:我有一个包含多个工作表的工作簿。我试图使用一个函数(在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时,第一行的数据似乎只会被分割(当粘贴数组时,输出正常) 。关于可能是什么原因的任何想法?