I hope this is the right forum - I'm assuming so, as it's only Macs where I'm having this issue.

I've made an XLSM file that works perfectly on my Windows PC running Excel for Microsoft 365 MSO (Version 2304 Build 16.0.16327.20324) 64-bit, but when people at my workplace with Macs try to open it they get:
1) An error stating "We found a problem with some content in filename.xlsm. Do you want us to try and recover as much as we can? If you trust the source of this workbook, click yes.
2) They click yes and the repair results show:
Repair Result to filename0.xml
Errors were detected in file ’filepath and filename.xlsm'

Removed Part: /xl/vbaProject.bin part. (Visual Basic for Applications (VBA))
As the vba project has been removed, obviously the macros don't work.
The macros are very simple (IMO) just copying values to a second sheet (using an Excel sheet as a form essentially):
Sub Rectangle1_Click()

ws_output = "Data"
next_row = Sheets(ws_output).Range("A" & Rows.Count).End(xlUp).Offset(1).Row
 Sheets(ws_output).Cells(next_row, 1).Value = Application.WorksheetFunction.Substitute("IL-" & Range("Invoice_Date"), "/", "") & Right(WorksheetFunction.Text(next_row, "00"), 2)
 Sheets(ws_output).Cells(next_row, 2).Value = Range("Invoice_Date").Value
 Sheets(ws_output).Cells(next_row, 3).Value = Range("Due_Date").Value
 Sheets(ws_output).Cells(next_row, 4).Value = Range("Chain").Value
 Sheets(ws_output).Cells(next_row, 5).Value = Range("To").Value
 Sheets(ws_output).Cells(next_row, 6).Value = Range("Address").Value
 Sheets(ws_output).Cells(next_row, 7).Value = Range("Attn").Value
 Sheets(ws_output).Cells(next_row, 8).Value = Range("Details").Value
 Sheets(ws_output).Cells(next_row, 9).Value = Range("Details2").Value
 Sheets(ws_output).Cells(next_row, 10).Value = Range("In_Contract").Value
 Sheets(ws_output).Cells(next_row, 11).Value = Range("Amount").Value
 Sheets(ws_output).Cells(next_row, 12).Value = Range("GST").Value
 Sheets(ws_output).Cells(next_row, 13).Value = Range("Amount").Value + Range("GST").Value
 Sheets(ws_output).Cells(next_row, 14).Value = Range("Paid_Date").Value
 Sheets(ws_output).Cells(next_row, 15).Value = Range("FCM").Value
 Sheets(ws_output).Cells(next_row, 16).Value = Range("CT").Value
 Sheets(ws_output).Cells(next_row, 17).Value = Range("Stage").Value
 Sheets(ws_output).Cells(next_row, 18).Value = Range("FCBT").Value
 Sheets(ws_output).Cells(next_row, 19).Value = Range("FCM_ME").Value

End Sub

Is there something in this code that isn't Mac compatible? Is there an easy fix?