我正在努力解決我認為很容易解決的問題......但我仍然沒有完成它。
請記住,我不是編程專家。
所以我自己構建了一個 Excel 模板,可以將.SRT檔案轉換為腳本格式。
一個.Srt檔案的結構是這樣的:
NUMBER OF SUBTITLE
TIMECODE IN --> TIMECODE OUT
LINE OF TEXT
(.SRT-File-Structure)
1
00:00:01,369 --> 00:00:04,500
Hello there
2
00:00:05,102 --> 00:00:10,200
I am Manuel
(... and so on)
我的問題是我沒有成功匯入資料。我以一種非常簡單的方式進行了嘗試,我將此 VBA 代碼用于:
Sub Datei_auswaehlen()
Dim Dateiname As Variant
Dim wbQuelle As Workbook
Dim letzteZeile As Long
'ScreenUpdating und PopUps deaktivieren
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dateiname = Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.srt*),*.srt*")
If Dateiname <> False Then
letzteZeile = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Set wbQuelle = Workbooks.Open(Filename:=Dateiname)
wbQuelle.Worksheets(1).Range("A:A").Copy
ThisWorkbook.Worksheets(1).Range("A:A").PasteSpecial
wbQuelle.Close SaveChanges:=False
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
我想要的是它將所有內容復制到 A 列中的 Excel 中,以便我可以進一步處理。
但由于某種原因,我不知道某些.srt看起來完全相同的檔案,它們被切成兩半,如下所示:
1
00:00:41
Text in Line 1
2
00:00:45
Text in Line 2
有人可以用更好的方法幫助我嗎?
一切順利,
馬努
uj5u.com熱心網友回復:
請測驗下一個更新的代碼。它將使用打開檔案OpenText并將其第一個面板,第一列內容粘貼到作業簿的活動作業表中,保留代碼(因此,它的第一列必須為空,否則代碼將覆寫其內容):
Sub Datei_auswaehlen()
Dim Dateiname As String, wbQuelle As Workbook, letzteZeile As Long, shC As Worksheet
'ScreenUpdating und PopUps deaktivieren
Application.ScreenUpdating = False
Set shC = ActiveSheet 'use here the sheet to copy in
Dateiname = Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.srt*),*.srt*")
If Dateiname <> "" Then
Workbooks.OpenText fileName:=Dateiname, origin:=65001, _
startRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True _
, space:=False, Other:=False, FieldInfo:=Array(1, 2)
Set wbQuelle = ActiveWorkbook
letzteZeile = wbQuelle.Worksheets(1).cells(rows.count, 1).End(xlUp).row
With wbQuelle.Worksheets(1).Range("A1:A" & letzteZeile)
shC.Range("A1").Resize(.rows.count, .Columns.count).Value = .Value
End With
shC.Range("A:A").EntireColumn.AutoFit
wbQuelle.Close SaveChanges:=False
End If
Application.ScreenUpdating = True
End Sub
請在測驗后發送一些反饋。如果有些事情不夠清楚,請不要猶豫,要求澄清。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514479.html
標籤:擅长vba文件导入
上一篇:使用VBA組合選定范圍內的值
