Vba 将公式化值以静态形式粘贴到另一列中的代码
下面是一段代码,每当刷新数据并运行宏时,我必须将两个单元格中的信息记录到一个单元格中。顶部工作正常。我很难理解的部分是“End Sub”前面的最后一行。代码的这一部分采用G3中给出的值,并将其粘贴到D列中的下一个可用行中(这与代码的顶部完全分开)。我的问题是它没有从第2行开始将其粘贴到D列中。而是从第27行开始粘贴T列中的值 我试着把代码弄得乱七八糟,看看是否能让代码从第2行开始粘贴到D列,但我没有运气Vba 将公式化值以静态形式粘贴到另一列中的代码,vba,excel,Vba,Excel,下面是一段代码,每当刷新数据并运行宏时,我必须将两个单元格中的信息记录到一个单元格中。顶部工作正常。我很难理解的部分是“End Sub”前面的最后一行。代码的这一部分采用G3中给出的值,并将其粘贴到D列中的下一个可用行中(这与代码的顶部完全分开)。我的问题是它没有从第2行开始将其粘贴到D列中。而是从第27行开始粘贴T列中的值 我试着把代码弄得乱七八糟,看看是否能让代码从第2行开始粘贴到D列,但我没有运气 Sub TimeStamp() ' ' TimeStamp Macro ' ' Keyboa
Sub TimeStamp()
'
' TimeStamp Macro
'
' Keyboard Shortcut: Ctrl+Shift+T
'
ActiveCell.Formula = "=CONCATENATE(L1,N1)"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Columns(4).SpecialCells(xlCellTypeLastCell).Offset(1, 0).Value2 = Range("G3").Value2
End Sub
这将使你的宏工作
Sub TimeStamp()
' TimeStamp Macro
' Keyboard Shortcut: Ctrl+Shift+T
With ActiveCell
.Formula = "=CONCATENATE(L1,N1)"
.Cells = .Value
End With
With ActiveSheet
.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0) = .Range("G3").Value2
End With
End Sub
虽然我不太愿意推荐使用ActiveCell和ActiveSheet,但您并没有提供足够的细节来明确引用它们。我怀疑ActiveCell实际上是G3,但这并不确定
有关摆脱依靠选择和激活来实现目标的更多方法,请参阅。这将使宏正常工作
Sub TimeStamp()
' TimeStamp Macro
' Keyboard Shortcut: Ctrl+Shift+T
With ActiveCell
.Formula = "=CONCATENATE(L1,N1)"
.Cells = .Value
End With
With ActiveSheet
.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0) = .Range("G3").Value2
End With
End Sub
虽然我不太愿意推荐使用ActiveCell和ActiveSheet,但您并没有提供足够的细节来明确引用它们。我怀疑ActiveCell实际上是G3,但这并不确定
有关摆脱依靠选择和激活来实现目标的更多方法,请参阅。G3不是活动单元格。该单元格包含插入D列的值。活动单元格是时间戳所在的位置。然而,这是完美的,我感谢你的帮助和有用的网站。您知道为什么在这段代码中,连接公式最终会执行“换行文本”吗?Excel用于任意指定换行文本单元格格式的规则从来都不清楚,但无论是使用
=L1&N1
还是=concatenate(L1,N1),似乎都是一致的
。我通过记录自己使单元格列不被包裹来修复它。感谢您的帮助@Jeepedi尝试使用相同的代码.Cells(Rows.Count,“D”).End(xlUp).Offset(1,0)=.Range(“G3”).Value2'
作为列A
而不是列D
,并切换L1和N1
的G3
,或将范围部分替换为.Formula=“=串联(L1,N1)”
。这两种方法似乎都不起作用,我正在尝试做与以前相同的事情,只是范围不再是1个单元格。现在,两个细胞结合成一个。“你认为你可能有解决办法吗?”那个菜鸟-对不起,我不能理解你问题的范围。如果你的新情况不同到足以打破这个公认的答案,那么它应该作为一个新问题提出,并对情况进行新的描述。您可以返回此线程并将现有代码粘贴到新问题中。G3不是活动单元格。该单元格包含插入D列的值。活动单元格是时间戳所在的位置。然而,这是完美的,我感谢你的帮助和有用的网站。您知道为什么在这段代码中,连接公式最终会执行“换行文本”吗?Excel用于任意指定换行文本单元格格式的规则从来都不清楚,但无论是使用=L1&N1
还是=concatenate(L1,N1),似乎都是一致的
。我通过记录自己使单元格列不被包裹来修复它。感谢您的帮助@Jeepedi尝试使用相同的代码.Cells(Rows.Count,“D”).End(xlUp).Offset(1,0)=.Range(“G3”).Value2'
作为列A
而不是列D
,并切换L1和N1
的G3
,或将范围部分替换为.Formula=“=串联(L1,N1)”
。这两种方法似乎都不起作用,我正在尝试做与以前相同的事情,只是范围不再是1个单元格。现在,两个细胞结合成一个。“你认为你可能有解决办法吗?”那个菜鸟-对不起,我不能理解你问题的范围。如果你的新情况不同到足以打破这个公认的答案,那么它应该作为一个新问题提出,并对情况进行新的描述。您可以返回到该线程并将现有代码粘贴到新问题中。