【发布时间】:2020-12-07 13:13:40
【问题描述】:
我正在开发一个宏,它可以在应用过滤器的同时从某个区域生成多个 CSV 文件。有两个问题。
- 工作簿将保存为从其名称检索的文件格式(单元格 B15 和单词“周”)
- 在单元格 B15 为空之前,我无法找到循环此宏的方法。
有人可以帮忙吗?提前致谢。
Sub CSVMaker()
'
' CSVMaker Macro
'
'
ActiveSheet.Range("$A$17:$M$240000").AutoFilter Field:=2, Criteria1:="<>"
Range("A18:B18").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add.Name = Range("A10").Value & "." & Range("A7").Value & "." & "Week" & Range("B15").Value
ActiveSheet.Paste
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name, FileFormat:=xlCSV, CreateBackup:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
Sheets("Input").Select
Columns("B:B").Select
Range("B6").Activate
Selection.Delete Shift:=xlToLeft
End Sub
【问题讨论】:
-
那么您的文件名可能应该有一个
.csv文件扩展名Filename:=ActiveSheet.Name & ".csv"• 请显示您尝试循环的内容?此外,还不清楚您在每个循环中到底想做什么。 • 请阅读How to avoid using Select in Excel VBA 和Why is “Can someone help me?” not an actual question? 以改进您的问题。 -
您好,我发现了错误。我已经去掉了名字(&“.”&)之间的点。这对我有用。我尝试循环整个序列,直到单元格 B15 为空。
-
@嗯,这句话解释得不够充分,而且你已经写了。您需要提供更多信息并相应地edit您的问题。请参阅minimal reproducible example 以了解一个好的示例应该是什么样子。阅读How to Ask 也可能有所帮助。请改进您的问题并提供尽可能多的信息。请记住,除了您告诉我们的内容外,我们对您的项目一无所知。屏幕截图和好的示例也可能有所帮助。
-
到目前为止,您没有循环来继续该过程。 CSV 文件是从同一个工作表创建的吗?你有可以附上的例子吗?
-
您好,我添加的循环函数很简单:Do Until IsEmpty("B15") (...) Loop 由于格式错误,它不起作用。随着这个问题的解决,循环的问题也得到了解决。感谢大家的帮助!
标签: excel vba loops export-to-csv