我运行的代码运行了,但是没有达到我在最后一行中的预期。最后一行将粘贴公式,但不会为新单元格调整公式。 例如,如果复制的公式为A3且公式为A3 = A1 + A2,则将其粘贴到A10中时,公式仍为A1 + A2而不是A9 + A8。
我尝试使用特殊粘贴,但无法正常工作。我不想选择一个新的活动单元,因为我将不得不返回到原始活动单元并再次引用它。
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+Shift+Z
'
Dim StartCell As Range
Dim copyRance As Range
Dim dataSheet As Worksheet
Dim destSheet As Worksheet
Set dataSheet = Sheets("Macro (insert data)")
Set destSheet = Sheets("Jun-2019")
Set StartCell = ActiveCell
Set copyRange = dataSheet.Range("G4:Q4")
ActiveCell.Resize(copyRange.Rows.Count, copyRange.Columns.Count).Value = copyRange.Value
Set copyRange = dataSheet.Range("W4:AG5")
destSheet.Range("C42").Resize(copyRange.Rows.Count, copyRange.Columns.Count).Value = copyRange.Value
Set copyRange = destSheet.Range("N10:X10")
StartCell.Offset(0, 11).Resize(copyRange.Rows.Count, copyRange.Columns.Count).Value = copyRange.Formula
End Sub
答案 0 :(得分:1)
从注释看来,您似乎要复制公式,然后将其转换为值。这需要分两个阶段完成,如果“计算”设置为“手动”,可以选择使用显式.Calculate
:
Set copyRange = dataSheet.Range("G4:Q4")
'Copy formulas to ActiveCell
copyRange.Copy Destination:=ActiveCell
With ActiveCell.Resize(copyRange.Rows.Count, copyRange.Columns.Count)
'Force the calculation
.Calculate
'Keep just the values
.Value = .Value
End With