0
我知道可能有過這樣的問題。但我真的不熟悉VB,所以我需要幫助。下面是部分代碼:VB宏 - 運行時錯誤「13」在每個循環
Sub Convert_to_Digi()
Dim SrcWkb As Workbook
Dim csvWkb As Workbook
Dim srcSheet As Worksheet
Dim StartRow As Long
Dim wkbname As Variant
Dim xlsFiles As Variant
Dim MyRange As Range
Dim NewName As Variant
Dim csvName As String
StartRow = 2
' Get the workbooks to open
xlsFiles = Application.GetOpenFilename(FileFilter:="Excel files (*.xls), *.xls", MultiSelect:=True)
If VarType(xlsFiles) = vbBoolean Then Exit Sub
' Loop through each workbook and copy the data to this CSV
For Each wkbname In xlsFiles
Set SrcWkb = Workbooks.Open(Filename:=wkbname, ReadOnly:=False)
Set srcSheet = SrcWkb.Worksheets("export_label_conf")
' Get used range on sheet
Set MyRange = srcSheet.UsedRange
' Adjust to exclude top row
Set MyRange = MyRange.Offset(1, 0).Resize(MyRange.Rows.Count - 1)
NewName = srcSheet.Cells(2, 10) & ".csv"
If MyRange.Row + MyRange.Rows.Count - 1 >= StartRow Then
Set csvWkb = Workbooks.Open(Filename:="C:\DIGITAL\template.csv", ReadOnly:=False)
' copy column A
MyRange.Columns(1).Copy
' paste into CSV template file, column I
csvWkb.ActiveSheet.Cells(2, 9).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
' and save template as new CSV with barcode as name
csvName = "C:\DIGITAL\" & NewName
csvWkb.SaveAs Filename:=csvName, FileFormat:=xlCSV, CreateBackup:=False
End If
SrcWkb.Close
Next wkbname
End Sub
我得到這個錯誤對於每個wkbname在xlsFiles線。 wkbname是空的,而xlsFiles包含一個文件的名稱,打開(但只有1,而它應該有幾個...)
,只有一小會兒前,它工作正常!我解開所有我能記得我做了,但沒有解決問題....
開始使用版本控制系統(GIT,水銀,集市,SVN,...),以及你將永遠不會得到形式「只有一小會兒前,它是工作的罰款」的問題。 – 2011-02-28 12:25:18
運行時錯誤13類型不匹配,我認爲 – 2011-02-28 12:25:47
哪裏是你的代碼的其餘部分?它看起來像在For Each循環結束之前被切斷了。 – 2011-02-28 12:28:27