Неизвестная ошибка кода VBA (закодирована на macbook, запущена на windwos) - PullRequest
0 голосов
/ 24 мая 2019

Прежде всего, мои извинения перед сообществом за то, что я принес один и тот же макрос несколько раз.Я просто не в состоянии понять это ... Я решил одну вещь, а затем другой аспект (который я даже не думаю, что коснулся) перестал работать.В приведенном ниже коде все работает безупречно на моем Macbook, но не так много на компьютере моих коллег с Windows.В частности, это:

 "ws.Range("A1") = NextMonth" 

, найденный в разделе «Остальное», который, кажется, не работает.По иронии судьбы, это сработало раньше, но тогда название листа (месяц) было на неправильном языке (другой пост).По какой-то необоснованной причине последняя проблема была решена, а затем появилась первая упомянутая проблема ... такой беспорядок!

Единственное, что я сделал с невидимым листом, это изменение формата ячейки A1 на«[$ -en-GB] MMMM ¯¯¯¯», чтобы убедиться, что месяц в «A1» отображается на английском языке.

Есть предложения?

С уважением, Александр

Sub MonthlyReport()


Dim CurrentMonth As String
Dim CurrentYear As String
Dim NextMonth As String
Dim ws As Worksheet
Dim ExtractMonth As String
Dim ExtractYear As String


Sheets(Sheets.Count).Select
Set ws = ActiveSheet

 If ws.Range("A1") = "" Then

    CurrentMonth = Application.InputBox("Please enter the month", "Report (monthly)")
    CurrentYear = Application.InputBox("Please enter the year", "Report (monthly)")

    Sheets("Template").Visible = True
    Sheets("Template").Copy After:=Sheets(Sheets.Count)
    Sheets("Template").Visible = False

    Sheets(Sheets.Count).Select
    Set ws = ActiveSheet
    ws.Range("A1") = CurrentMonth & " " & CurrentYear

    ws.Name = CurrentMonth

    ws.Range("C96") = "Average " & CurrentMonth & " " & CurrentYear


Else

    CurrentMonth = ws.Range("A1")
    NextMonth = DateAdd("m", 1, CurrentMonth)


    Sheets("Template").Visible = True
    Sheets("Template").Copy After:=Sheets(Sheets.Count)
    Sheets("Template").Visible = False

    Sheets(Sheets.Count).Select
    Set ws = ActiveSheet

    ws.Range("A1") = NextMonth

    ExtractMonth = Format(NextMonth, "mmmm")
    ExtractYear = Format(NextMonth, "yyyy")
    ws.Name = ExtractMonth

   ws.Range("C96") = "Average " & ExtractMonth & " " & ExtractYear



End If




End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...