ThisWorkbook.SaveAs Filename не сохраняет и не код ошибки (что я вижу) - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок. У меня есть код, который я унаследовал, который копирует рабочие листы из ежемесячной рабочей книги в новую рабочую книгу и создает сводную таблицу. Он работает для данных за апрель, но для данных за май и последующие месяцы, когда он приходит к сохранению, он немного вращается, а затем просто умирает без кода ошибки. Я не могу понять, что должно отличаться между ежемесячными рабочими листами, которые могли бы сделать этот штамп. Я бежал в немедленном режиме, и я до сих пор не вижу никаких признаков проблемы. Будем весьма благодарны за любые предложения о том, как отследить проблему.

Set wb2 = ActiveWorkbook
wb2.Activate
Sheets("977-053").Select 'Add sheets
ActiveSheet.Shapes.Range(Array("Picture 4")).Select
Cells.Select
Selection.Copy
Windows("RH ARAP Summary BASIC.xlsm").Activate
Sheets("Chavez").Select
Cells.Select
ActiveSheet.Paste
wb2.Activate
Sheets("977-05J").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RH ARAP Summary BASIC.xlsm").Activate
Sheets("Pangburn").Select
ActiveSheet.Paste
wb2.Activate
Sheets("977-05K").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RH ARAP Summary BASIC.xlsm").Activate
Sheets("Geier").Select
ActiveSheet.Paste
wb2.Activate
Sheets("977-05R").Select
Application.CutCopyMode = False
Selection.Copy
Windows("RH ARAP Summary BASIC.xlsm").Activate
Sheets("Martin").Select
ActiveSheet.Paste

wb2.Close SaveChanges:=False 'close opened TO 5
MsgBox "ready to Save"
Sheets("RH ARAP Summary").Select 'save ARAP to division folder to send


ThisWorkbook.SaveAs Filename:="May-2"

1 Ответ

1 голос
/ 03 ноября 2019

Ваш код был в основном сгенерирован устройством записи макросов. То, что он делает, довольно просто, но с ним трудно работать в такой форме. Если вы измените его так, чтобы переменные были определены, с ним будет намного чище и легче работать.

Для начала, вот простой фрагмент кода, который делает нечто похожее с правильно определенными переменными. Анимированный .gif показывает, что он работает для копирования содержимого из листа в одной книге на лист в другом (нажмите для подробностей). Надеюсь, что после его изучения вы сможете отрегулировать решение вашей проблемы.

enter image description here

Option Explicit
Sub test()
Dim wb As Workbook, wb2 As Workbook
Dim sh As Worksheet, sh2 As Worksheet
Dim r2 As Range
Set wb2 = ThisWorkbook
Set sh2 = wb2.Worksheets("977-053")
Set r2 = sh2.Range("A1")
For Each wb In Workbooks
    If wb.Name = "Book2" Then
        Set sh = wb.Worksheets("Chavez")
        sh.Cells.Copy
        sh2.Activate
        r2.Select
        sh2.Paste
    End If
Next
End Sub
...