我有一个Excel 2007宏(Visual Basic 6.5),它会抛出在Excel 2010下运行的类型不匹配错误。错误发生在参考VB函数,如 Mid()
或 Instr()
。
有人能告诉我这些错误的原因吗?
如果Excel 2010系统上未安装(或不安装)VB.NET,是否会导致错误?
许多人在各种系统上使用此宏。以前我通过编写自己的函数解决了这些错误。
以下是相关代码,错误发生在中间行:
bdash = 0
bdash = InStr(Dfiles(ii, 1), "-")
bperiod = InStr(bdash, Mid(Dfiles(ii, 1), "."))
bname$ = Mid(Dfiles(ii, 1), 1 + bdash, bperiod - 2)
tprefix$ = Mid(TemplateFile$, 1, 12)
答案 0 :(得分:0)
由于你的错误提出:
bperiod = InStr(bdash, Mid(Dfiles(ii, 1), "."))
你的问题就在Mid(Dfiles(ii, 1), ".")
部分:
Public Shared Function Mid( _
ByVal str As String, _
ByVal Start As Integer, _
Optional ByVal Length As Integer _
) As String
我认为您的代码应该是这样的:
bperiod = InStr(bdash, Mid(Dfiles(ii, 1), bdash), "."))