【发布时间】:2021-05-19 15:06:05
【问题描述】:
我有一个带有数据选项卡的 .xlsm,旨在用数据自动填充一些单元格,然后将这些行导出到 CSV 文件,但是当我运行我的代码时,它会复制整个活动范围,包括已格式化为的单元格为空白并将它们导出为逗号,我尝试编写代码以删除新 CSV 中的逗号,并且我尝试编写代码以首先不复制格式化的空白值,但到目前为止我没有试过了。
到目前为止,我已经花了几个月的时间,论坛上的其他人也有同样的问题,但似乎没有人解决它。
Sub Mcam_Order_Entry()
'
' Mcam_Order_Entry Macro
' GETS ORDER ENTRY FORM READY FOR TRUNEST
'
' Keyboard Shortcut: Ctrl+Shift+M
'
Dim SB As Worksheet
Set SB = Worksheets("Sandbox")
Set n = SB.Cells(3, 2)
Worksheets("PNM").Copy
With ActiveSheet.UsedRange
.Copy
.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
End With
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="I:\Group\DNC\MAGESTIC\Multicam\NEW MULTICAM DXFS\" & "Nest" & n & ".csv", _
FileFormat:=xlCSVMac
ActiveWorkbook.RefreshAll
Range("F15").Select
ActiveWorkbook.Save
ActiveWindow.Close
Worksheets("Sandbox").Select
Range("B3") = Range("B3") + 1
Worksheets("PNM").Select
Range("F2:F15").Select
Selection.ClearContents
Range("F2").Select
End Sub
【问题讨论】:
-
代替
Copy/PasteSpecial,试试With ActiveSheet.UsedRange、.Value = .Value、End With。 -
当我将 " .Copy .PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=True, Transpose:=False " 替换为 ".value = .value" 我得到相同的结果,一个在末尾或“底部”有一堆逗号的文件,因为它正在拉动其中包含公式的单元格,这些公式是空白的。
-
你的公式有类似
=IF(foo, bar, "")的作用吗? “公式化空白”是什么意思? -
是的,我所说的公式为空白,我的意思是一个公式发生了,结果是一个故意的空白单元格 = "" 真正的公式看起来更像这样 =IFERROR(VLOOKUP(TEXT($F2, "0000000"),'Nesting WIP'!A:J,2,FALSE),"") 输出有时是 "" 有时是实际值。
标签: excel vba export-to-csv blank-line