0
下午好所有的細胞,試圖在Excel導出至CSV只包含數據
我建立一個Excel工作表的我的同事使用生成CSV文件。我需要得到一個帶有標題行的輸出,然後是表單中的所有數據。它不會超過40行,但可能會減少行數。我目前在表格中有很多公式,爲我的同事完成繁重的工作,例如從輸入數據中生成用戶名等。我需要讓他們點擊一個按鈕,並在另一端獲取CSV文件。我目前的問題如下。
1)即使逗號不在輸入數據中,我的CSV在每個字段中都包含雙引號。我需要防止這種情況,因爲我們正在向這些CSV文件提供的程序不像雙引號AT ALL。是的,我知道你可以在記事本中打開它,並全部替換它們以刪除它們,但是我試圖構建一個單擊解決方案,因爲使用它的一些人不太懂技術。
2.)我的宏目前正在導出所有四十行數據。我需要它只導出包含數據的行。從理論上講,使用構建的公式不應該有「部分」行,只有整行或空行。
3.)當生成CSV文件時,它根本不附加文件類型,我需要它來指定.txt。文件類型,如果可能的話,我們提供的這些程序非常挑剔。
Sub CommandButton1_Click()
Dim filename As String
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
filename = InputBox("Please enter file name", "Save as CSV", "CSV_" & Format(Now, "DD_MM_yyyy"))
myFile = Application.DefaultFilePath & filename
Set rng = Range("A1:J41")
Open myFile For Output As #1
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then
Write #1, cellValue
Else
Write #1, cellValue,
End If
Next j
Next i
Close #1
末次
這些雙引號來自哪裏?它們在您填充.csv時出現,還是在現有的cellValues中? –
經過半個小時的代碼試驗後,我發現實際上有一個超級簡單的方法來做到這一點。只需使用「另存爲」 - >選擇CSV - >如果您的工作簿有多個表格,則會彈出提示,詢問您是否只想保存活動工作表。推'是' - >你完成 –
只是一個快速澄清領域。 你說過並非所有的40行都可能有數據。數據是連續的行還是空白的?即如果在行1-5中有5行dat,或者它們是否在行1,2,4,6,9中? – viper941