2017-06-14 22 views
0

我有这个宏(用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(视窗10),但导致编译错误完美的罚款:预期功能或变量,当我尝试在Office 2011 for Mac或Office 2015 for Mac中运行它时。

任何人都可以在正确的方向指向我,或者告诉我如何更改代码以使其工作?

在此先感谢! Jascha

+0

是,当你错误的任何行突出? – sous2817

+0

是的,第一行'SubSchaltfläche1_Klicken()' –

+1

你怎么踢代码?它是一个ActiveX按钮点击事件? – sous2817

回答

2

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 

enter image description here

注意:你和我以后没有得到那个错误,因为你修改了我们都测试过的帖子:)

Interesting Read

相关问题