Excel 2016:一个工作簿中的VBA代码会影响其他工作簿中的单元格
问题描述:
我在Excel 2013和Excel 2010中使用了相同的代码,它工作得很好,但是当系统升级到Excel 2016时,事情发生变化,代码工作如果我在该工作簿中键入单词,任何想法都会在其他工作簿中实施一本书?非常感谢 这里是代码Excel 2016:一个工作簿中的VBA代码会影响其他工作簿中的单元格
```
Sub createsheets()
On Error Resume Next
Dim sh As Worksheet
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Workbooks("Book2").Worksheets
If ws.Name <> "test" Then ws.Delete
Next
For j = 4 To 10
PauseTime = 5
starter = Timer
Do While (Timer < starter + PauseTime)
Application.StatusBar = "do nothing..."
DoEvents
Loop
Application.StatusBar = ""
Workbooks("Book2").Worksheets.Add.Name = "name" & j - 3
current_worksheet_name = "name" & j - 3
Workbooks("Book2").Worksheets(current_worksheet_name).Cells(1, 1) = "this is a test"
Next
End Sub
```
***此代码的一部分,如果我在另一个工作簿中键入的话,说工作簿名称是“ABC”,将在我当前的工作簿“ABC”中创建名称为“namej”的新工作表。 这显然是不能接受的,我想我已经指定的工作簿,但它仍然无法正常工作
答
你可以试试这样的事情...
Sub createsheets()
Dim wb As Workbook
Dim sh As Worksheet
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Workbooks("Book2.xlsx")
If Not wb Is Nothing Then
On Error Resume Next
For Each ws In wb.Worksheets
If LCase(ws.Name) <> "test" Then ws.Delete
Next
For j = 1 To 7
wb.Sheets.Add(after:=Sheets(Sheets.Count)).Name = "name" & j
Set sh = ActiveSheet
sh.Cells(1, 1) = "this is a test"
Next
Else
MsgBox "Book2.xlsx is not opened.", vbExclamation
End If
Application.ScreenUpdating = True
End Sub
+0
嗨,@sktneer,感谢您的回复,但看起来上面的代码仍然无法避免我上面描述的问题,更多具体的,如果我用上面的代码添加'''PauseTime = 5 起动=定时器 做,当(定时器 riversxiao
你试过设置工作簿的ThisWorkbook? – user1
也不能工作,VBA仍然在两个工作簿上运行,谢谢@ mo.h – riversxiao