データを 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
興味深いことに、複数の列を選択すると、空のセルが保存され、正しい位置からデータが開始されます。
実際に問題を悪化させる xlPasteAll の代わりに xlPasteValues を使用してみました - PasteSpecial ステップで複数の列がある場合でも空のセルをスキップするようになりました。
また、xlCSVMSDOS、xlCSVWindows (どちらも「\r\n」行末文字を使用)、および xlCSVMac (「\n|」EOL 文字を使用) として保存しようとしました。何も機能しませんでした。
助けてください!
PS私もこのトレッドで説明されている方法を使用しようとしましたが、まだ運がありません.