Excel VBA 如何将一段单元格复制并粘贴到新建的 sheet
Excel VBA How to copy and paste a section of cells into a newly made sheet
我正在做一个预算员之类的东西来帮助人们跟踪他们的钱。我目前有一堆代码可以检查当前月份并尝试使用名称 (MM/YYYY) 创建一个新的 sheet 除非 sheet 已经创建,如果已经创建那么什么都不会发生。
Private Sub Worksheet_Change(ByVal Target As Range)
nowMonth = Month(Now)
nowYear = Year(Now)
sheetNameStr = nowMonth & "," & nowYear
sheetExists = False
For Each Sheet In Worksheets
If sheetNameStr = Sheet.Name Then
sheetExists = True
End If
Next Sheet
If sheetExists = False Then
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = sheetNameStr
MsgBox ("New sheet named " & sheetNameStr & "was created")
End If
Sheets("Main").Activate
Worksheets("Main").Range("A5:D300").Copy Worksheets("sheetNameStr").Range("A1")
End Sub
我遇到的问题是试图复制并粘贴我的 purchases/income 的历史记录并将其粘贴到新的 sheet 中。我总是得到
Run-time error '9': Subscript out of range
错误。
如果有人能提供帮助,那将是非常感谢!
你的台词
Worksheets("Main").Range("A5:D300").Copy Worksheets("sheetNameStr").Range("A1")
指的是一个名为 "sheetNameStr"
的作品sheet,但你真的想引用一个 sheet,其名称包含在变量 sheetNameStr
中,即
Worksheets("Main").Range("A5:D300").Copy Worksheets(sheetNameStr).Range("A1")
我正在做一个预算员之类的东西来帮助人们跟踪他们的钱。我目前有一堆代码可以检查当前月份并尝试使用名称 (MM/YYYY) 创建一个新的 sheet 除非 sheet 已经创建,如果已经创建那么什么都不会发生。
Private Sub Worksheet_Change(ByVal Target As Range)
nowMonth = Month(Now)
nowYear = Year(Now)
sheetNameStr = nowMonth & "," & nowYear
sheetExists = False
For Each Sheet In Worksheets
If sheetNameStr = Sheet.Name Then
sheetExists = True
End If
Next Sheet
If sheetExists = False Then
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = sheetNameStr
MsgBox ("New sheet named " & sheetNameStr & "was created")
End If
Sheets("Main").Activate
Worksheets("Main").Range("A5:D300").Copy Worksheets("sheetNameStr").Range("A1")
End Sub
我遇到的问题是试图复制并粘贴我的 purchases/income 的历史记录并将其粘贴到新的 sheet 中。我总是得到
Run-time error '9': Subscript out of range
错误。
如果有人能提供帮助,那将是非常感谢!
你的台词
Worksheets("Main").Range("A5:D300").Copy Worksheets("sheetNameStr").Range("A1")
指的是一个名为 "sheetNameStr"
的作品sheet,但你真的想引用一个 sheet,其名称包含在变量 sheetNameStr
中,即
Worksheets("Main").Range("A5:D300").Copy Worksheets(sheetNameStr).Range("A1")