我对数据保存到 CSV 文件的方式有疑问。它仅在您尝试保存第一个单元格为空的单列时发生。您可以选择整列或一组相邻的单元格。将其保存到 CSV 文件后,将跳过前导的空单元格。我是作为 VBA 子程序的一部分来做的,但是手动操作会得到相同的结果。下面是我正在使用的代码和测试数据。
Sub CopyRange()
'Copy range: suppose B1 and B2 are empty, B3 to B10 are filled with anything
'e.g. with some numbers
ActiveSheet.Range("B1:B10").Copy
'Create new workbook
Workbooks.Add
'NOTE: I need to create a workbook with generic name, save the name and pass it
'to another program - just to clarity why I don't do it all in one shot at .Copy
csvPath = TEMP & "\" & ActiveWorkbook.Name & ".csv"
'Paste copied data to the newly created workbook
'NOTE: so far it keeps B1 and B2 empty
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Save the workbook as CSV
ActiveWorkbook.SaveAs Filename:=csvPath, FileFormat:=xlCSV, _
ReadOnlyRecommended:=False, CreateBackup:=False
'At this point the saved file moves all data 2 cells up
'to fill the empty spaces in B1 and N2. That's the issue!
End Sub
有趣的是,如果您选择多于一列,则它会保存空单元格并在正确的位置开始数据。
我尝试使用 xlPasteValues 而不是 xlPasteAll ,这实际上让事情变得更糟 - 现在它会跳过空单元格,即使你有超过 1 列,在 PasteSpecial 步骤。
我还尝试将其保存为 xlCSVMSDOS、xlCSVWindows(均使用“\r\n”行尾字符)和 xlCSVMac(使用“\n|”EOL 字符)。没有任何效果。
请帮忙!
PS我也尝试过使用这个步骤中描述的方法,但仍然没有运气。