【问题标题】:Compile error: Expected Function or variable编译错误:预期的函数或变量
【发布时间】:2017-06-14 18:56:39
【问题描述】:

我有这个宏(用 Excel 2016/Windows 编写),它充当一个非常简单的预订工具,检查资产当前是否已预订或免费。根据这一点,它会在另一个工作表中写入预订期间何时结束或下一个预订期间何时开始:

Sub Schaltfläche1_Klicken()

Worksheets("Tabelle10").Activate                                        
With Columns(4)                                                         
.Find(what:="*", after:=.Cells(1, 1), LookIn:=xlValues).Activate    
End With

ActiveCell.Offset(0, -3).Select                                    

If Selection.Value = "TODAY AM" Then
Sheets("HTML Output").Range("B3").Value = "Desk booked from this afternoon. Next availability"

ActiveCell.Offset(0, 3).Select
Do Until IsEmpty(ActiveCell)            
ActiveCell.Offset(1, 0).Select
Loop  

ActiveCell.Select

ActiveCell.Offset(0, -2).Select

Selection.Copy

Sheets("HTML Output").Range("C3").PasteSpecial xlPasteValues

ActiveCell.Offset(0, 1).Select

Selection.Copy

Sheets("HTML Output").Range("D3").PasteSpecial xlPasteValues

ElseIf Selection.Value = "TODAY PM" Then
Sheets("HTML Output").Range("B3").Value = "Desk booked from this afternoon. Next availability"

ActiveCell.Offset(0, 3).Select

Do Until IsEmpty(ActiveCell)            
ActiveCell.Offset(1, 0).Select
Loop

ActiveCell.Select

ActiveCell.Offset(0, -2).Select

Selection.Copy

Sheets("HTML Output").Range("C3").PasteSpecial xlPasteValues

ActiveCell.Offset(0, 1).Select

Selection.Copy

Sheets("HTML Output").Range("D3").PasteSpecial xlPasteValues

ElseIf Selection.Value = "TOMORROW AM" Or Selection.Value = "TOMORROW PM" Or  Selection.Value = "FUTURE" Then

Sheets("HTML Output").Range("B3").Value = "Desk free until (including)"

ActiveCell.Offset(-1, 1).Select

Selection.Copy

Sheets("HTML Output").Range("C3").PasteSpecial xlPasteValues

ActiveCell.Offset(0, 1).Select

Selection.Copy

Sheets("HTML Output").Range("D3").PasteSpecial xlPasteValues

End If

End Sub

这在 Office 2016 (Windows 10) 中运行良好,但在我尝试在 Office 2011 for Mac 或 Office 2015 for Mac 中运行时导致编译错误:预期函数或变量。

谁能指出我正确的方向以及原因或告诉我如何更改代码以使其正常工作?

提前致谢! 雅沙

【问题讨论】:

  • 出现错误时是否突出显示任何行?
  • 是的,第一行'Sub Schaltfläche1_Klicken()'
  • 你是如何启动代码的?它是一个 ActiveX 按钮单击事件吗?
  • 这可能值得一读。似乎如果您使用的是 ActiveX 按钮,它将无法在 Mac 上运行 (mrexcel.com/forum/excel-questions/…)
  • 刚刚在 Mac 上测试过。它给了我你得到的错误,但现在不是。您可以删除您的代码并重新粘贴并重试。我就是这样做的,它奏效了

标签: excel vba macos excel-2011


【解决方案1】:

VBA Excel 2011 中的错误处理不如 Window 对应的那么好。

您收到该错误是因为您将With/End WithActiveCell.Offset(0, 1).Select 一起使用

重现该错误的最佳方法是将此代码粘贴到模块中

Sub Schaltfläche1_Klicken()
    With ActiveCell.Offset(0, 1).Select
    End With
End Sub

注意:您和我后来都没有收到该错误,因为您修改了我们都测试过的帖子:)

Interesting Read

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-06
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多