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