Excel 2007 VBA代码不在Excel 2010下运行

时间:2013-08-19 12:20:07

标签: excel vba excel-vba type-mismatch

我有一个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)

1 个答案:

答案 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), "."))