Код запускается (копировать и вставлять), когда на одном листе, но ничего не делает при запуске с другого листа - PullRequest
0 голосов
/ 08 апреля 2019

Это должно быть легко исправить, но я не могу найти проблему.

У меня есть 2 листа «DispoData» и «Dormant».Я хочу исправить и скопировать дату из «A1» в «DispoData» в «C8: E8» на листе «Бездействующий».

Код работает абсолютно нормально, если у меня активен лист «DispoData»и запустить код, но если я нахожусь на любом другом листе и запускаю его, ячейки «C8: E8» на «неактивном листе» пустые.

Dim wbTemplate As Workbook
Dim ws As Worksheet, wsDispoData As Worksheet, wsDormant As Worksheet
Set wbTemplate = Workbooks("Makro Stock Management Bundle TEMPLATE.xlsm")
Set wsDispoData = wbTemplate.Worksheets("DispoData")
Set wsDormant = wbTemplate.Worksheets("Dormant Stock")


    Application.ScreenUpdating = False

'Add date from Dispo to Dormant sheet, convert to date and delete other writing
    With wsDispoData.Range("A1")
        .FormulaR1C1 = Left(Range("A1"), 10)
        .Copy wsDormant.Range("C8:E8")
    End With

    Application.CutCopyMode = False
    wsDormant.Range("C8:E8").NumberFormat = "dd.mm.yyyy"

Я хочу, чтобы код выполнялся независимо от того, чтолист активен.Там много кода, поэтому я только снова активирую обновление экрана в конце.Я запускаю код шаг за шагом, и все работает, кроме вставки, ничего не делает, если я не запускаю код с активным листом «DispoData».

1 Ответ

1 голос
/ 08 апреля 2019

Исправлена ​​версия: с помощью формы @ BigBen.

With wsDispoData.Range("A1")
    .FormulaR1C1 = Left(wsDispoData.Range("A1"), 10)
    .Copy wsDormant.Range("C8:E8")
End With
...