Excel VBA-SaveCopyAs, а затем изменить активную книгу на вновь созданный файл - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над жестким кодированием файла, SaveCopyAs, а затем меняю активную книгу на вновь созданный файл, чтобы я мог отправить файл без каких-либо формул и т. Д. В дальнейшем в коде.Я пробовал Workbook.Activate, но, похоже, не могу получить правильный файл из моего собственного кода.

Спасибо за помощь!

Sheets("Send").Visible = True
Sheets.Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False

Dim thisWb As Workbook, d As Integer

Set thisWb = ActiveWorkbook
d = InStrRev(thisWb.FullName, ".")
'ActiveWorkbook.SaveAs Filename:=Left(thisWb.FullName, d - 1) & "-Prelims" & 
Mid(thisWb.FullName, d)
Sheets("Send").Visible = False
ActiveWorkbook.SaveCopyAs Filename:=Left(thisWb.FullName, d - 1) & "- Prelims" & Mid(thisWb.FullName, d)
ActiveWorkbook.Close savechanges:=False

1 Ответ

0 голосов
/ 28 февраля 2019

После того, как вы сохраните копию файла, вам нужно открыть ее:

В этой строке исправьте:

ActiveWorkbook.SaveCopyAs Filename:=Left(thisWb.FullName, d - 1) & "- Prelims" & Mid(thisWb.FullName, d)
ActiveWorkbook.Close savechanges:=False

Добавьте эти операторы перед этими строками, давайте захватим выводимя файла в строковой переменной:

Dim newFileName as String
newFileName = Left(thisWb.FullName, d - 1) & "- Prelims" & Mid(thisWb.FullName, d)

И тогда мы можем сделать:

thisWb.SaveCopyAs Filename:=newFileName  ' use thisWb instead of ActiveWorkbook

Наконец, откройте новый:

Dim newWorkbook as Workbook
Set newWorkbook = Workbooks.Open(newFileName)

Puttingвсе вместе:

Dim newFileName as String
' build the filename parmaeter:
newFileName = Left(thisWb.FullName, d - 1) & "- Prelims" & Mid(thisWb.FullName, d)
thisWb.SaveCopyAs Filename:=newFileName
thisWb.Close savechanges:=False

' Open the new workbook:
Dim newWorkbook as Workbook
Set newWorkbook = Workbooks.Open(newFileName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...