首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel 2016:一个工作簿中的VBA代码将影响其他工作簿中的单元格

Excel 2016:一个工作簿中的VBA代码将影响其他工作簿中的单元格
EN

Stack Overflow用户
提问于 2017-04-11 17:35:19
回答 1查看 117关注 0票数 0

我在Excel 2013和Excel 2010中使用了相同的代码,它工作得非常好,但当系统升级到Excel 2016时,情况发生了变化,如果我在另一个工作簿中键入单词,一个工作簿中的代码将会在该工作簿中实现,你有什么想法吗?非常感谢以下是代码的一部分

代码语言:javascript
复制
```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) =“这是一个测试”

下一步

结束子对象

代码语言:javascript
复制

*对于此代码,如果我在另一个工作簿中键入单词,假设工作簿名称为"ABC",将在我当前的工作簿“ABC”中创建名为"namej“的新工作表。这显然是不可接受的,我想我已经指定了工作簿,但它仍然不起作用

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 19:39:18

你可以试试这样的东西...

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43342110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档