excel - 如何使用 VBA 将 Excel 中的工作表保存为 CSV,并将文件保存为用户名和日期?
问题描述
大家好。
如果我现在问的内容听起来很愚蠢或愚蠢,我很抱歉,但我对 VBA 相对较新,而且对它并不流利。
现在,我有一个表格供用户输入他们工作场所发生的事件报告,我设法将数据工作表保存为 csv,但现在,我想自动将工作表保存为用户名和打印 csv 的时间。
这是我的代码的样子。
Public Sub ExportWorksheetAndSaveAsCSV()
Dim wbkExport As Workbook
Dim shtToExport As Worksheet
Dim xStrDate As String
Set shtToExport = ThisWorkbook.Worksheets("PartsData")
xStrDate = Format(Now, "yyyy-mm-dd hh-mm-ss")
Set wbkExport = Application.Workbooks.Add
shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count)
Application.DisplayAlerts = False
wbkExport.SaveAs FileName:=xStrDate,"C:\temp\IncidentDatabase.csv", FileFormat:=xlCSV
Application.DisplayAlerts = True
wbkExport.Close SaveChanges:=False
End Sub
当我尝试运行代码时,这发生了
这部分突出显示 -
wbkExport.SaveAs FileName:=xStrDate,"C:\temp\IncidentDatabase.csv", FileFormat:=xlCSV
我已经阅读了一些几乎类似的问题,但没有找到答案。请帮我。谢谢你。看待。
解决方案
复制工作表而不提供位置。这将创建一个新工作簿,其中复制的工作表作为唯一的工作表。
ENVIRON 函数可以检索用户名等环境变量。
Public Sub ExportWorksheetAndSaveAsCSV()
Dim fn As String
fn = environ("USERNAME") & "-" & Format(Now, "yyyy-mm-dd hh-mm-ss")
ThisWorkbook.Worksheets("PartsData").Copy
With activeworkbook
Application.DisplayAlerts = false
.SaveAs FileName:="C:\temp\" & fn, FileFormat:=xlCSV
Application.DisplayAlerts = true
.close savechanges:=false
end with
End Sub
推荐阅读
- cocoa - 更改 CALayer 属性:EXC_BAD_INSTRUCTION
- python - 如何使用scrapy python提取写在h4标签之外的文本
- c# - 如何为 Home Controller 中的每个单独视图应用 css 类型样式
- javascript - 为什么数字类型不初始化为 0?
- php - 自动链接字符串中的单词(如果它们存在于数组中)
- delphi - 在 Livebindings 中传递对象构造函数参数
- java - 是否可以使用 AOP/AspectJ 来影响 StringBuilder
- git - 如何合并两个分支,几乎没有变化
- uwp - Uwp Prism 无视图模型定位器
- html - 在 CSS Grid 1 行多列的行项目中