我想在一张纸上复制一个范围并将其粘贴为另一张纸中的值,但只是在B列中下一个可用单元格的特定范围内 . 仅从B4到B23 .
我改变了一些我在网上找到的代码,但是找不到下一行可能不适合我 . 在我第一次运行宏之后,当我一次又一次地运行它时,它什么都不做,而且它也不能仅粘贴值 .
我尝试在再次运行宏之前保存文件,但它仍然无法正常工作 .
最后,当打印页中的范围已满时,我想要一个消息框,要求我在我的一台服务器上选择一台打印机(不是默认设置)(在代码中指定服务器路径,如\ a_server_name)并打印此打印页,或清除打印页范围内的记录,或仅将新打印的文件(SaveAs)保存到我可以在其中一台服务器上选择的位置(指定服务器路径) code \ a_server_name)或者什么也不做,结束sub .
谢谢 .
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Set copySheet = Worksheets(“Data”)
Set pasteSheet = Worksheets("Print”)
copySheet.Range("J11:Q11").Copy
pasteSheet.Range("B4:I23").End(xlUp).Offset(1,0)
.PasteSpecial.xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
2 回答
根据我可以收集的内容,您希望复制8个单元格并将所有8个单元格粘贴到20行,从B4开始 . 您不清楚如何重新运行宏,它只会写入您刚刚粘贴的数据 .
第一个代码将8个单元格复制到20行中
第二个代码使用for循环来启动相同的任务,但它也会覆盖以前粘贴的数据 .
如果您希望能够重用宏,则必须修改要复制的范围,以便选择要复制的范围 . 也许是一个允许用户输入
InputBox
的变量 .编辑:
编辑#3
这将设置彼此相等的值而不复制/粘贴 .
修改你的代码 - 并减少到最小的例子