macros在我的电脑上工作,但在其他电脑上运行时错误“438”

我对VBA相对来说比较陌生,而且我制作了一个在我的电脑上工作的macros,但是当我把它发给其他人的时候,在这一行中出错:

If WorksheetFunction.Concat(ActiveSheet.Range("a2:n2").Value) <> "UnitOper UnitDeptProjectDateLine DescrAmountAccountProductJournal IDLine #RefStatusAffiliate" Then 

我将包括下面的整个macros,但我想用getopenfilename打开一个文件,并确保该文件具有正确的内容。 即使当我把这个macros发给使用Excel 2016的人,它仍然不起作用,错误。

我尝试了一些新的东西,现在它说在同一行上的types不匹配。

  Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim myFileName As Variant Dim sWorkbook, i As String Dim Macrotool As String Dim Countlines As Long Macrotool = ActiveWorkbook.Name myFileName = Application.GetOpenFilename If myFileName <> False Then Workbooks.Open (myFileName) sWorkbook = ActiveWorkbook.Name ActiveSheet.Range("O2") = "=concat(a2:n2)" If ActiveSheet.Range("o2").Value <> "UnitOper UnitDeptProjectDateLine DescrAmountAccountProductJournal IDLine #RefStatusAffiliate" Then Workbooks(sWorkbook).Close False i = MsgBox("It looks like you are uploading the wrong file." & vbLf & "Please make sure you are using one of the following queries:" & vbLf & "" & vbLf & "'ACCOUNT_ACTIVITY_ANY_CF'" & vbLf & "'ACCOUNT_ACTIVITY_BU'" & vbLf & "'ACCOUNT_ACTIVITY_BU_OP'" & vbLf & "'ACCOUNT_ACTIVITY_BU_OP_DEP'" & vbLf & "'ACCOUNT_ACTIVITY_BU_OP_DEP_PRJ'", vbOKOnly, "Wrong Filed Used") Application.ScreenUpdating = True Workbooks(Macrotool).Activate Sheets("Home").Select GoTo OnError End If 

您使用的是2016年的精美Excel版本,而“其他”则使用Excel 2013或更低版本? 因此,他们没有WorksheetFunction.Concat ,他们得到错误438。

告诉你,他们正在使用Excel 2016 ,仍然得到一个错误,要么不知道他们正在使用的版本,或在其他地方得到错误。

最糟糕的情况 – 去那些Excel 2016的人,并确保他们有完全相同的工作表,在该行完全相同的错误。 确保你也检查ActiveSheet名字。