在VBA中键入不匹配错误13
所以我正在为VBA中的macros编写代码,并且每当我尝试运行它时,我总是在同一行上得到相同的错误。 奇怪的是这行在程序的早期工作,但它停止工作,我第二次使用它(我没有改变任何代码,我从字面上复制和粘贴它)。 这是代码:
positioninDailyVisitors = Application.Match(originaldata.Worksheets("Top Visitors Chart").Range(columns(index) & counter + 11), originaldata.Worksheets("Daily Visitors").Range("A5:A627"), 0)
有点背景: positioninDailyVisitors
是一个整型variables, columns(index)
是一个String
types的数组,它列出了像“A”,“B”等值。另外,我已经试过使用Application.WorksheetFunction.Match
,它仍然不起作用。
如果Application.Match
没有find任何东西, 它会返回一个Variant/Error
给调用者 – 而你试图把这个错误分配给一个只有整数的variables==>types不匹配。 投注好钱这是你的问题,因为代码偶尔工作。
请原谅我的低分手绘技巧:
这样修改你的代码:
If Not IsError(Application.Match(originaldata.Worksheets("Top Visitors Chart").Range(columns(index) & counter + 11), originaldata.Worksheets("Daily Visitors").Range("A5:A627"), 0)) Then & _ positioninDailyVisitors = Application.Match(originaldata.Worksheets("Top Visitors Chart").Range(columns(index) & counter + 11), originaldata.Worksheets("Daily Visitors").Range("A5:A627"), 0)
或者也许更可行/可读:
Dim errVar As Variant errVar = Application.Match(originaldata.Worksheets("Top Visitors Chart").Range(columns(index) & counter + 11), originaldata.Worksheets("Daily Visitors").Range("A5:A627"), 0) If Not IsError(errVar) Then positioninDailyVisitors = CInt(errVar)