Ⅰ 請用VBA讓EXCEL某些列自動導成TXT文本
第二行的{1}這樣的內容是表上原來就有的吧,使用這個裡面的內容作為文件名,每個文件裡面的正式數據是從第三行開始,對不對?
ALT+F11插入模塊寫程序,如下圖:
程序代碼文本為:
Option Explicit
Sub 導出數據()
Dim arr, i, j
arr = ActiveSheet.UsedRange
For j = 1 To UBound(arr, 2)
arr(2, j) = Trim(Replace(Replace(arr(2, j), "{", ""), "}", ""))
If arr(2, j) <> "" Then
'下面行裡面的 i: emp mp 表示報錯的文件夾,你需要修改為自己的位置
Open "i: emp mp" & arr(2, j) & ".txt" For Output As #1
For i = 3 To UBound(arr)
Print #1, arr(i, j)
Next i
Close #1
End If
Next j
End Sub
程序代碼在我的電腦上執行成功,如果你遇到問題,希望截圖的時候包含完整的EXCEL窗口,必須要看見行列標題。
Ⅱ excel中,用VBA編寫的,將一列中相同的內容的行提取出來單獨生成文件
在Excel中,利用VBA編寫一個宏,可以將一列中相同的內容行提取出來,生成獨立的文件。此方法適用於2003及以上版本的Excel,需要將代碼中的.xls格式更換為.xlsx。為了方便測試,可以下載附件中的示例文件,新生成的文件會保存在以當前時間命名的「分類匯總」文件夾中。
以下是具體的VBA代碼實現:
首先定義一個數組變數arr,並將指定列的內容讀入該數組中。接著定義變數i、wName、wPath,其中wName表示生成的文件名,wPath表示保存路徑。使用Scripting.dictionary對象dc來記錄已經處理過的數據。
接下來,遍歷數組arr,從第二行開始檢查每個元素。如果dc中不存在當前元素,則創建一個新的工作簿,並將其保存到指定路徑下。工作簿保存後,設置第一個工作表的名稱,填寫表頭信息。
對於已經存在於dc中的元素,直接在已有文件中追加數據。使用Sheets(1)引用當前工作表,並將數據逐行寫入。
遍歷完成後,通過dc.keys獲取所有已生成的文件名。逐一關閉這些文件,以釋放資源。
以上步驟實現了將Excel中相同內容的行提取出來,分別保存為獨立文件的功能。這種方法適用於需要對大量數據進行分類匯總的場景。
在實際應用中,可以根據需要調整代碼中的參數,以適應不同的工作表結構和需求。通過這種方式,可以大大提高數據處理的效率和准確性。
Ⅲ excel用vba自動生成word
這個不太難。
我想問一下將表格中A1:B13的內容導入Word 時是按什麼順序,A1、A2…回…A13、B1……還是A1、B1、A2、B2……,答每個單元格的內容為一段還是不分段落,還是直接將表格插入到Word文件中?