我在Excel 2013和Excel 2010中使用了相同的代码,它运行得非常好,但是当系统升级到Excel 2016时,事情发生了变化,如果我输入单词,在一本书中的代码工作将在其他工作簿中实现那个工作簿,有什么想法吗?非常感谢 这是代码的一部分
```
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”的新工作表。 这显然是不可接受的,我想我已经指定了工作簿,但它仍然不起作用
答案 0 :(得分:0)
您可以尝试这样的事情......
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