2017-04-11 2 views
0

Excel 2013とExcel 2010で同じコードを使用しましたが、正常に動作しますが、システムがExcel 2016にアップグレードすると、そのブックに単語を入力すると、他のブックに1つのブックが実装されます。おかげでたくさんここ は、私は別のブック内の単語を入力する場合は、ワークブックを言って、このコードのコードExcel 2016:1つのブック内の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 

` ``

***の一部であり、 nameが "ABC"の場合、現在のブック "ABC"に "namej"という名前の新しいシートが作成されます。私は、ブックを指定したが、それはまだあなたはこのような何かを試すことが

+0

はあなたはThisWorkbookにワークブックを設定しようとしたがありますか? – user1

+0

はまだ動作しません、VBAはまだ両方のワークブックで動作しています。ありがとう@ mo.h – riversxiao

答えて

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 
+0

こんにちは、@sktneer、あなたの返事をありがとうが、上記のコードはまだ私が上記の問題を避けることができないようです具体的な、私は追加上記のコードを使用している場合、 '' '休止時間= 5 スターター=タイマー んが(タイマ<スターター+休止時間) Application.StatusBar = "何もしない..." DoEvents関数の間​​で Loop''' 、別のブックに単語を入力すると、新しいブックにシートが作成されるので、この問題には不満があります – riversxiao

関連する問題