Excel: 创建一个宏以将活动选择复制粘贴到另一个工作表中
Excel: Creating a macro to copy&paste active selection into another worksheet
这是我的第一个问题,请多多关照。
免责声明:我对Excel中的宏构建也很陌生,所以如果我要求澄清,请不要生气。
我着手制作一个项目跟踪器,运行解决了以下问题:
我想要一个按钮,允许我在一个工作表上复制活动的 selection(单个单元格或一行)并将其粘贴到一个工作簿中的另一个工作表中。
我基本上想做的是有可能只 select 某项任务,单击按钮并将其 copy/paste 到不同的工作表中。因此,据我了解,代码需要是一个循环(?)并且它还需要偏移以便我可以粘贴多个任务并且它们不会相互覆盖。
我现在设法搜集的代码在行 Activecell.Offset
上给了我运行时错误 1004,我不明白为什么。
Sub MoveToWeekly()
Sheets("Test1").Select
Selection.Copy
Sheets("Test2").Select
Sheets("Test2").Range("A1:A4").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1).Select
Selection.PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
如果能得到一些帮助,我将非常高兴,很抱歉我没有说得很具体。
这是一种方法
Sub MoveToWeekly()
'make sure a range is selected
If typeName(selection)<>"Range" Then
Msgbox "First select a range"
Exit sub
End If
'you can assign the value between the two ranges directly, without copy/paste
'Note: assumes there's always a value in ColA on the destination sheet
with Selection
'Starting at the bottom of the sheet and using xlUp is
' typically safer than using xlDown
Sheets("Test2").Cells(rows.count,1).end(xlup).offset(1,0) _
.resize(.rows.count, .columns.count).value = .value
End with
End Sub
这是我的第一个问题,请多多关照。
免责声明:我对Excel中的宏构建也很陌生,所以如果我要求澄清,请不要生气。
我着手制作一个项目跟踪器,运行解决了以下问题: 我想要一个按钮,允许我在一个工作表上复制活动的 selection(单个单元格或一行)并将其粘贴到一个工作簿中的另一个工作表中。
我基本上想做的是有可能只 select 某项任务,单击按钮并将其 copy/paste 到不同的工作表中。因此,据我了解,代码需要是一个循环(?)并且它还需要偏移以便我可以粘贴多个任务并且它们不会相互覆盖。
我现在设法搜集的代码在行 Activecell.Offset
上给了我运行时错误 1004,我不明白为什么。
Sub MoveToWeekly()
Sheets("Test1").Select
Selection.Copy
Sheets("Test2").Select
Sheets("Test2").Range("A1:A4").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1).Select
Selection.PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
如果能得到一些帮助,我将非常高兴,很抱歉我没有说得很具体。
这是一种方法
Sub MoveToWeekly()
'make sure a range is selected
If typeName(selection)<>"Range" Then
Msgbox "First select a range"
Exit sub
End If
'you can assign the value between the two ranges directly, without copy/paste
'Note: assumes there's always a value in ColA on the destination sheet
with Selection
'Starting at the bottom of the sheet and using xlUp is
' typically safer than using xlDown
Sheets("Test2").Cells(rows.count,1).end(xlup).offset(1,0) _
.resize(.rows.count, .columns.count).value = .value
End with
End Sub