正如标题所示,在关闭另一个运行宏的工作簿后,它仍会显示在VBA资源管理器中。
宏在做什么:
以上所有内容都包含在循环中,因为我需要能够对几十个条目执行此操作。
我曾尝试从内存中清除对象,但显然我仍然做错了事。
宏代码:
Sub Openworkbook_Click()
'Updateby Extendoffice 20161008
Dim sWb As Workbook
Dim dWb As Workbook
Dim wbName As String
Dim newName As String
Dim relPath As String
Dim i As Integer
On Error Resume Next
Set sWb = ActiveWorkbook
'While loop
i = 3
Do While sWb.Sheets(1).Range("B" & i) <> ""
'Set destination workbook
Set dWb = Workbooks.Open("D:\1. WORK\AUDA\in progress\Betonvæg_test.xlsm")
'Geometry copy
sWb.Sheets(1).Range("B" & i).Copy
dWb.Sheets(1).Range("K13").PasteSpecial
sWb.Sheets(1).Range("C" & i).Copy
dWb.Sheets(1).Range("K14").PasteSpecial
sWb.Sheets(1).Range("D" & i).Copy
dWb.Sheets(1).Range("K15").PasteSpecial
'Reinforcement copy
sWb.Sheets(1).Range("G" & i).Copy
dWb.Sheets(1).Range("J19").PasteSpecial
sWb.Sheets(1).Range("H" & i).Copy
dWb.Sheets(1).Range("K19").PasteSpecial
sWb.Sheets(1).Range("I" & i).Copy
dWb.Sheets(1).Range("J20").PasteSpecial
sWb.Sheets(1).Range("J" & i).Copy
dWb.Sheets(1).Range("K20").PasteSpecial
sWb.Sheets(1).Range("K" & i).Copy
dWb.Sheets(1).Range("J21").PasteSpecial
sWb.Sheets(1).Range("L" & i).Copy
dWb.Sheets(1).Range("K21").PasteSpecial
sWb.Sheets(1).Range("M" & i).Copy
dWb.Sheets(1).Range("J22").PasteSpecial
sWb.Sheets(1).Range("N" & i).Copy
dWb.Sheets(1).Range("K22").PasteSpecial
'Material properties
sWb.Sheets(1).Range("E" & i).Copy
dWb.Sheets(1).Range("E17").PasteSpecial
sWb.Sheets(1).Range("F" & i).Copy
dWb.Sheets(1).Range("E18").PasteSpecial
'Other
sWb.Sheets(1).Range("O" & i).Copy
dWb.Sheets(1).Range("E12").PasteSpecial
sWb.Sheets(1).Range("P" & i).Copy
dWb.Sheets(1).Range("E13").PasteSpecial
sWb.Sheets(1).Range("Q" & i).Copy
dWb.Sheets(1).Range("E14").PasteSpecial
sWb.Sheets(1).Range("R" & i).Copy
dWb.Sheets(1).Range("E15").PasteSpecial
'Copy loads
sWb.Sheets(1).Range("S" & i).Copy
dWb.Sheets(1).Range("F33").PasteSpecial
sWb.Sheets(1).Range("T" & i).Copy
dWb.Sheets(1).Range("G33").PasteSpecial
sWb.Sheets(1).Range("U" & i).Copy
dWb.Sheets(1).Range("F34").PasteSpecial
sWb.Sheets(1).Range("V" & i).Copy
dWb.Sheets(1).Range("G34").PasteSpecial
sWb.Sheets(1).Range("W" & i).Copy
dWb.Sheets(1).Range("G35").PasteSpecial
sWb.Sheets(1).Range("X" & i).Copy
dWb.Sheets(1).Range("F35").PasteSpecial
'Save with different name & close
newName = "Betonvæg_" & sWb.Sheets(1).Range("C" & i) & "x" & sWb.Sheets(1).Range("D" & i) & ".xlsm"
relPath = ThisWorkbook.Path & "\"
Application.DisplayAlerts = False
dWb.SaveAs Filename:=relPath & newName
Application.DisplayAlerts = True
Workbooks(newName).Close SaveChanges:=True
'Clear destination object
Set dWb = Nothing
'Increment i to read next line
i = i + 1
Loop
End Sub
答案 0 :(得分:0)
使用---
- hosts: myIP
tasks:
- name: Install a yum package in Ansible example
yum:
name: ThePackageIWantToInstall
state: present
代替dWb.Close SaveChanges:=True
关闭工作簿