【发布时间】:2018-11-09 12:42:55
【问题描述】:
我正在尝试通过 API PUT 从 Excel 工作簿中导出一些数据。我使用的特定 API 要求数据采用 CSV 格式。
我有来自 site 的代码,可以将一系列单元格转换为 CSV。
Sub ExportRangetoFile()
'Update 20150628
Dim Rng As Range
Dim WorkRng As Range
Dim xFile As Variant
Dim xFileString As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address,
Type:=8)
Application.ActiveSheet.Copy
Application.ActiveSheet.Cells.Clear
WorkRng.Copy Application.ActiveSheet.Range("A1")
Set xFile = CreateObject("Scripting.FileSystemObject")
xFileString = Application.GetSaveAsFilename("", filefilter:="Comma Separated
Text (*.CSV), *.CSV")
Application.ActiveWorkbook.SaveAs Filename:=xFileString, FileFormat:=xlCSV,
CreateBackup:=False
End Sub
第 1 期: This 示例在运行后需要几个额外的步骤;选择范围并保存/命名文件。我有一个恒定范围的单元格,它们将转换为 CSV(尽管它们没有恒定值),我真的不希望用户对 CSV 做任何事情。我正在尝试使其尽可能自动化,以便其他人只需单击工作簿中的按钮即可进行此导出。 如何通过 VBA 中的宏和/或模块完全自动化本网站显示的内容?
第二期: 如果找到问题 1 的解决方案,并且每次运行该宏后都会保存一个 CSV 文件,是否可以通过 API 调用将该 CSV 放入创建该文件的同一工作簿中?我正在尝试使一切自动化,以使最常使用此工作簿的人尽可能轻松。也许所有这些事情都可以在一个宏或模块中完成。
澄清
我正在寻求帮助,仅通过运行宏而不单击任何保存或文件命名来从一系列单元格创建 CSV。其次,我只是想问是否有可能,以及最好的做法是通过同一个工作簿中的 API 调用发送这个 CSV 文件,甚至是同一个宏,只需单击一次表单就可以完成。我不需要有关 API 调用细节方面的帮助...。
【问题讨论】:
-
删除 WorkRng 并替换为您定义的范围。您的第二个问题有点令人困惑......您想要保存 CSV 文件,然后将 CSV 文件添加到 XLSX/XLSM/XLSB 文件中?看起来您已经保存到相同的文件扩展名。
标签: vba excel export-to-csv