我有這段代碼可以從目錄中處理所有 xls 和 xlsx 并將它們轉換為 txt 分隔的列并且作業正常:
Public Sub Save_Workbooks_As_Tabbed()
Dim folderPath As String
Dim fileName As String
Dim p As Long
folderPath = "C:\Users\user\Desktop\catalogsales\"
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
Application.ScreenUpdating = False
fileName = Dir(folderPath & "*.xls*")
Do While fileName <> vbNullString
Workbooks.Open folderPath & fileName
p = InStrRev(fileName, ".") - 1
ActiveWorkbook.SaveAs fileName:=folderPath & Left(fileName, p) & ".txt", FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close False
fileName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Done"
End Sub
但是,我只想從處理名為“DATASHE21”的作業表的每個檔案中轉換為 txt 分隔的列。在每個檔案中,我都有很多作業表,但我希望只將其轉換為文本。現在腳本的作用是將第一張表轉換為稅收分隔的列,但我不希望這樣。我只想轉換“DATASHE21”。為此需要在腳本中修改什么?
謝謝
uj5u.com熱心網友回復:
請替換此代碼部分:
fileName = Dir(folderPath & "*.xls*")
Do While fileName <> vbNullString
Workbooks.Open folderPath & fileName
p = InStrRev(fileName, ".") - 1
ActiveWorkbook.SaveAs fileName:=folderPath & Left(fileName, p) & ".txt", FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close False
fileName = Dir
Loop
有了這個:
Dim wb As Workbook
fileName = Dir(folderPath & "*.xls*")
Do While fileName <> vbNullString
Set wb = Workbooks.Open(folderPath & fileName)
p = InStrRev(fileName, ".") - 1
wb.Sheets("DATASHE21").Copy 'it creates a new workbook with a single sheet
ActiveWorkbook.saveas fileName:=folderPath & left(fileName, p) & ".txt", FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close False: wb.Close False
fileName = Dir
Loop
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492083.html
上一篇:從不同的資料框中查找最近的日期
