2017-06-14 6 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(Windowsの10)で完全に正常に動作しますが、コンパイルエラーになり:予約期間が終了するとき、または次の予約期間は、別のワークシートで起動しますとき、これに応じて、書き込みのいずれか: Mac用Office 2011またはMac用Office 2015で実行しようとすると、期待される関数または変数。

誰でも正しい理由を教えてもらえますか、それを動作させるためにコードを変更する方法を教えてください。

ありがとうございます! Jascha

+0

エラーが発生した場合、強調表示されている行はどれですか? – sous2817

+0

はい、最初の行 'SubSchaltfläche1_Klicken()' –

+1

どのようにコードを蹴っていますか? ActiveXボタンのクリックイベントですか? – sous2817

答えて

2

VBA Excel 2011のエラー処理は、Windowのものと同じくらい素晴らしいものではありません。あなたはそのエラーを取得した

あなたはActiveCell.Offset(0, 1).Select

With/End Withを使用していたので、そのエラーを再現するための最良の方法は、モジュールに

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

enter image description here

を、このコードを貼り付けます:あなたと私は両方ともテストしたあなたの投稿を修正したので、後でそのエラーを受け取りませんでした:)

Interesting Read

関連する問題