Vba excel宏,该宏自动创建一个新的工作表,该工作表从以前的工作表1继续执行“for循环”
我已经编写了一个vba代码,它有一个for next循环1到10,并在列a中的相应行中显示结果,我希望当它到达第5行时,宏应该自动创建一个名为new sheet的新工作表,for next从6继续到10。我是VBA新手,我编写的代码似乎不起作用 我的VBA代码:Vba excel宏,该宏自动创建一个新的工作表,该工作表从以前的工作表1继续执行“for循环”,vba,Vba,我已经编写了一个vba代码,它有一个for next循环1到10,并在列a中的相应行中显示结果,我希望当它到达第5行时,宏应该自动创建一个名为new sheet的新工作表,for next从6继续到10。我是VBA新手,我编写的代码似乎不起作用 我的VBA代码: Sub test() Dim a As Long Dim WS As Worksheet Set WS = Worksheets.Add(After:=Worksheets(1)) WS.Name = "New Sheet" n
Sub test()
Dim a As Long
Dim WS As Worksheet
Set WS = Worksheets.Add(After:=Worksheets(1))
WS.Name = "New Sheet"
n = 1
col1 = 1
For a = 1 To 10
If n <= 5 Then
Cells(n, col1).Value = a
n = n + 1
End If
If n > 5 Then
WS.Cells(n, 1).Value = a
n = n + 1
End If
Next a
End Sub
如果您遵循,您的代码可以进一步改进。 关于您的问题,您可以尝试以下方式:
Sub Test()
Dim newWS As Worksheet
Dim a As Long
Dim n As Long: n = 1
With Thisworkbook.Sheets("SheetName")
For a = 1 To 10
If n > 5 Then
On Error Resume Next
Set newWS = Thisworkbook.Sheets("New Sheet")
On Error Goto 0
If newWS Is Nothing Then
Set newWS = Thisworkbook.Sheets.Add(After:= _
Thisworkbook.Sheets(Thisworkbook.Sheets.Count))
newWS.Name = "New Sheet"
End If
newWS.Cells(n, 1).Value = a
Else
.Cells(n, 1).Value = a
End If
n = n + 1
Next
End With
End Sub
谢谢L42,您的帮助增加了我对VBA的理解