Excel 如何修复';不将范围复制到新行';
我正在尝试创建一个保存按钮,将以前的答案复制/粘贴到新行。但不仅仅是一个,我希望它尽可能多地节省,将它们列在彼此下面 这只是为了学校的一个项目,制作一份大师级的备忘单Excel 如何修复';不将范围复制到新行';,excel,vba,Excel,Vba,我正在尝试创建一个保存按钮,将以前的答案复制/粘贴到新行。但不仅仅是一个,我希望它尽可能多地节省,将它们列在彼此下面 这只是为了学校的一个项目,制作一份大师级的备忘单 Private Sub Save1_Click() Dim rA5 As范围 Set rA5=ThisWorkbook.Sheets(1).范围(“A5:E5”) 变暗rA7 As射程 Set rA7=ThisWorkbook.Sheets(1)范围(“A7:E7”) 如果(范围(“rA7”).Value“”),则 如果(范围(“
Private Sub Save1_Click()
Dim rA5 As范围
Set rA5=ThisWorkbook.Sheets(1).范围(“A5:E5”)
变暗rA7 As射程
Set rA7=ThisWorkbook.Sheets(1)范围(“A7:E7”)
如果(范围(“rA7”).Value“”),则
如果(范围(“rA7”).Offset(1).Value“”),则
设置rA7=rA7.结束(xlDown)
如果结束
设置rA7=rA7。偏移量(1)
如果结束
rA7.值=rA5.值
端接头
它仅将A5:E5粘贴到A7:E7。
之后它不会下降到A8:E8、A9:E9(依此类推)
您可以尝试:
Option Explicit
Sub test()
Dim LastRow As Long
With ThisWorkbook.Worksheets("Sheet1")
'Check if there is a value in A5
If .Range("A5").Value <> "" Then
'Copy range("A5:E5")
.Range("A5:E5").Copy
'If range A7 is empty
If .Range("A7").Value = "" Then
.Range("A7:E7").PasteSpecial Paste:=xlPasteValues
Else
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range(.Cells(LastRow + 1, "A"), .Cells(LastRow + 1, "E")).PasteSpecial Paste:=xlPasteValues
End If
Else
MsgBox "There is no available data to be save."
End If
End With
End Sub
选项显式
子测试()
最后一排一样长
使用此工作簿。工作表(“表1”)
'检查A5中是否有值
如果.Range(“A5”).值为“”,则
'复制范围(“A5:E5”)
.范围(“A5:E5”).副本
'如果范围A7为空
如果.Range(“A7”).Value=“”则
.范围(“A7:E7”).粘贴特殊粘贴:=XLPasteValue
其他的
LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row
.Range(.Cells(LastRow+1,“A”),.Cells(LastRow+1,“E”))。粘贴特殊粘贴:=XLPasteValue
如果结束
其他的
MsgBox“没有要保存的可用数据。”
如果结束
以
端接头
根据您对自己问题的评论,您似乎希望新计算的值位于顶行,而其余的值向下推一行。如果这是正确的,那么@Error1004 answer将无法工作,因为它会将您的值粘在最后。以下是他的代码,添加了一个反向循环,将新值粘贴在顶行并向下推:
子测试()
最后一排一样长
作为整数的Dim i
使用此工作簿。工作表(“表1”)
'检查A5中是否有值
如果.Range(“A5”).值为“”,则
'复制范围(“A5:E5”)
.范围(“A5:E5”).副本
'如果范围A7为空
如果.Range(“A7”).Value=“”则
.范围(“A7:E7”).粘贴特殊粘贴:=XLPasteValue
其他的
LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row
i=最后一行
我7岁以上的时候做
.Range(“A”&(i+1)&“:E”&(i+1)).Value=.Range(“A”&(i&“:E”&i).Value
i=i-1
环
.范围(“A7:E7”).值=.范围(“A5:E5”).值
如果结束
其他的
MsgBox“没有要保存的可用数据。”
如果结束
以
端接头
当我从@Error1004的答案中找出这段代码时,我把它归功于@Error1004。你能提供一张有理想结果的图片吗?添加了图片。我希望下一个答案保存在数字1下。因此,您可以跟踪自己的计算历史。我认为您希望使用一个有效的循环。谢谢,我将尝试了解您的代码是如何工作的,因为我对这一点非常陌生。谢谢你的帮助!