【发布时间】:2016-11-14 13:19:04
【问题描述】:
我正在寻找一种解决方案,可以将一些预先确定的标题添加到从 Excel 工作表导出的 CSV 文件中。我正在应用 BruceWayne 添加的解决方案,当我将 VBA 代码应用到我当前的 Excel 工作表时,它会将标题添加到 Excel 电子表格本身。
我正在尝试找到一种方法将此 VBA 代码应用于导出的 CSV 文件本身,而不是 Excel 电子表格。我的 VBA 代码目前如下所示:
Sub WriteCSVFile()
Dim My_filenumber As Integer
Dim logSTR As String
My_filenumber = FreeFile
logSTR = logSTR & Cells(18, "C").Value & " , "
logSTR = logSTR & Cells(19, "C").Value & " , "
logSTR = logSTR & Cells(20, "C").Value & " , "
logSTR = logSTR & Cells(21, "C").Value & " , "
logSTR = logSTR & Cells(22, "C").Value & " , "
logSTR = logSTR & Cells(26, "C").Value & " , "
logSTR = logSTR & Cells(27, "C").Value & " , "
logSTR = logSTR & Cells(28, "C").Value & " , "
logSTR = logSTR & Cells(29, "C").Value & " , "
logSTR = logSTR & Cells(30, "C").Value & " , "
logSTR = logSTR & Cells(31, "C").Value & " , "
logSTR = logSTR & Cells(32, "C").Value & " , "
logSTR = logSTR & Cells(36, "C").Value & " , "
logSTR = logSTR & Cells(37, "C").Value & " , "
logSTR = logSTR & Cells(38, "C").Value & " , "
logSTR = logSTR & Cells(39, "C").Value & " , "
logSTR = logSTR & Cells(40, "C").Value & " , "
logSTR = logSTR & Cells(41, "C").Value & " , "
logSTR = logSTR & Cells(42, "C").Value & " , "
logSTR = logSTR & Cells(46, "C").Value & " , "
logSTR = logSTR & Cells(47, "C").Value & " , "
logSTR = logSTR & Cells(48, "C").Value & " , "
logSTR = logSTR & Cells(49, "C").Value & " , "
logSTR = logSTR & Cells(50, "C").Value & " , "
logSTR = logSTR & Cells(51, "C").Value & " , "
logSTR = logSTR & Cells(52, "C").Value & " , "
Open "Z:\SHARE DRIVE\RequestDirectory\" & ThisWorkbook.Name & ".csv" For Append As #My_filenumber
Print #My_filenumber, logSTR
Close #My_filenumber
End Sub
当我通过删除一个或另一个末尾的“End Sub”将两个 VBA 代码组合在一起时,我收到一个错误,必须重新添加该行才能成功应用代码;但是,这样做必须单独应用代码,然后将标题添加到 Excel 工作表本身:
Sub AddHeaders()
Dim headers() As Variant
Dim ws As Worksheet
Dim wb As Workbook
Application.ScreenUpdating = False 'turn this off for the macro to run a little faster
Set wb = ActiveWorkbook
headers() = Array("Header1", "Header2", "Header3", "Header4", "Header5", "Header6",
"Header7", "Header8", "Header9", "Header10", "Header11", "Header12")
For Each ws In wb.Sheets
With ws
.Rows(1).Value = "" 'This will clear out row 1
For i = LBound(headers()) To UBound(headers())
.Cells(1, 1 + i).Value = headers(i)
Next i
.Rows(1).Font.Bold = True
End With
Next ws
Application.ScreenUpdating = True 'turn it back on
MsgBox ("Done!")
End Sub
我想知道是否有一种直接的方法来应用 VBA 代码来处理添加标题以及从 Excel 工作表导出到 CSV 文件的数据而不分离 2 个 VBA 代码?
感谢您提供的任何信息
【问题讨论】:
-
你能发布这个错误的内容吗?
-
错误读取 - 编译错误:预期结束子
-
您是否也删除了新宏的开头,例如
Sub AddHeaders()? -
我只是尝试按照您的建议进行操作 - 2 个组合的 VBA 代码能够成功执行,但标题仍应用于 Excel 工作表,而不是导出的 CSV 文档。