【发布时间】:2018-11-23 13:31:48
【问题描述】:
10 年来没有做过任何编程,现在正在尝试自动化一些管理工作。我需要从某个数据集创建一个 CSV 文件。 使用此代码单独运行以下代码以选择范围:
Set rng = Sheets("HAOD").Range("A2", Cells(Range("a1000000").End(xlUp).row, Range("xfd1").End(xlToLeft).Column))
工作正常,但如果我从我的主程序中调用子程序,我会收到错误 1004,并且调试器指向我的范围选择。我尝试使用此代码进行范围选择,我在网上找到的 VBA vlookup 函数中使用它,它在那里完美运行:
rng = .Range("A2:" & tblEnd & .Cells(.Rows.Count, tblEnd).End(xlUp).row).Value
但是当使用它时,它首先抱怨 .-reference 并且当我添加 Sheets("HAOD") 时,我再次收到 1004 错误。这一次即使是在单独运行子时也是如此。我做错了什么?
Sub CreateCheckITfile()
Call PopulateHAODtab
Call SaveAsCSV
End Sub
Sub SaveAsCSV()
Dim myFile As String
Dim rng As Range
Dim cellValue As Variant
Dim i As Integer
Dim j As Integer
myFile = Application.DefaultFilePath & "\HAOD.csv"
Set rng = Sheets("HAOD").Range("A2", Cells(Range("a1000000").End(xlUp).row, Range("xfd1").End(xlToLeft).Column))
Open myFile For Output Lock Write As #1
For i = 1 To rng.Rows.Count
Dim fileRow As String
fileRow = ""
For j = 1 To rng.Columns.Count
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then
fileRow = fileRow & cellValue
Print #1, fileRow
Else
fileRow = fileRow & cellValue & ","
End If
Next j
Next i
Close #1
End Sub
【问题讨论】:
-
使用点意味着一个With语句
With Sheets("HAOD")你的`rng定义看起来不对,你有三个范围?