/ / Errore di compilazione: Funzione prevista o variabile - excel, excel-vba, excel-vba-mac, excel-2011, vba

Errore di compilazione: Funzione prevista o variabile - excel, excel-vba, excel-vba-mac, excel-2011, vba

Ho questa macro (scritta in Excel 2016 / Windows)che funge da strumento di prenotazione molto semplice, controllando se una risorsa è attualmente prenotata o gratuita. A seconda di ciò, scrive quando termina il periodo prenotato o quando inizia il periodo prenotato successivo in un altro foglio di lavoro:

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

Funziona perfettamente in Office 2016 (Windows 10) ma genera un errore di compilazione: Funzione prevista o variabile quando provo a eseguirlo in Office 2011 per Mac o Office 2015 per Mac.

Qualcuno può indicarmi le giuste direzioni per quanto riguarda il motivo (i) per questo o dirmi come modificare il codice per farlo funzionare?

Grazie in anticipo! Jascha

risposte:

2 per risposta № 1

La gestione degli errori in VBA Excel 2011 non è eccezionale come la controparte di Windows.

Stavi ricevendo quell'errore perché stavi usando With/End With con ActiveCell.Offset(0, 1).Select

Il modo migliore per riprodurre questo errore è incollare questo codice in un modulo

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

inserisci la descrizione dell'immagine qui

Nota: Tu e io non abbiamo ricevuto quell'errore più tardi perché hai modificato il tuo post che entrambi abbiamo testato :)

Leggi interessante