我在Excel 2013和Excel 2010中使用了相同的代码,它工作得非常好,但当系统升级到Excel 2016时,情况发生了变化,如果我在另一个工作簿中键入单词,一个工作簿中的代码将会在该工作簿中实现,你有什么想法吗?非常感谢以下是代码的一部分
```javascript()
在出错时恢复下一步
Dim sh作为工作表
将% ws调整为工作表
Application.DisplayAlerts = False
对于工作簿(“Book2”)中的每个% ws,.Worksheets
如果ws.Name测试“<>”,那么ws.Delete
下一步
对于j=4到10
PauseTime =5
starter =计时器
Do While (计时器< starter + PauseTime)
Application.StatusBar =“什么都不做...”
DoEvents
循环
Application.StatusBar = "“
工作簿(“Book2”).Worksheets.Add.Name=“名称”&j-3
current_worksheet_name =“名称”&j-3
Workbooks("Book2").Worksheets(current_worksheet_name).Cells(1,1) =“这是一个测试”
下一步
结束子对象
*对于此代码,如果我在另一个工作簿中键入单词,假设工作簿名称为"ABC",将在我当前的工作簿“ABC”中创建名为"namej“的新工作表。这显然是不可接受的,我想我已经指定了工作簿,但它仍然不起作用
发布于 2017-04-11 19:39:18
你可以试试这样的东西...
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 Subhttps://stackoverflow.com/questions/43342110
复制相似问题