宏在我的计算机上工作,但在其他计算机

时间:2017-11-03 14:14:09

标签: excel vba excel-vba

我对VBA比较陌生,我制作了一个一直在我的计算机上运行的宏,但是当我把它发送给其他人时,它就出错了:

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

我将在下面包含整个宏,但我尝试使用getopenfilename打开文件,并确保该文件具有正确的内容。即使我将宏发送给使用excel 2016的人,它仍然无法正常工作并出错。

我尝试了一些新功能,现在它在同一行上说类型不匹配。

 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

1 个答案:

答案 0 :(得分:1)

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

那个告诉你他们正在使用Excel 2016并且仍然收到错误的人要么不确定他们正在使用哪个版本,要么在其他地方收到错误。

最糟糕的情况 - 转到那些使用Excel 2016的人,并确保他们拥有完全相同的工作表,并在该行上具有完全相同的错误。确保您也检查ActiveSheet名称。