2013-08-19 78 views
0

我有一个Excel 2007中宏抛出类型不匹配(Visual Basic中6.5)Excel 2010中的错误下运行错误参考VB的功能,如Mid()或发生Instr()Excel 2007中VBA代码不Excel中下运行2010

谁能告诉我这些错误的原因?

如果在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

显示您的代码,请 – 2013-08-19 12:23:06

+2

http://stackoverflow.com/questions/12476793/date-for-vba-not-working -in-excel-2011 – SeanC

+0

@Sean,这很有趣。我不完全明白这是做什么,但不同平台上的那种错误确实符合我所得到的。我在MacBook上也有一个类似的错误报告,但我没有任何细节。 鉴于我无法控制我的宏可以运行在哪个平台上,我可能会编写我自己的所有函数。讨厌,但可行。 – user2692903

回答

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