我刚开始学习VBA,我试图在这里找到解决方案,但无济于事。我正在寻找一个VBA宏:
我的工作簿中有一张名为LOG的工作表,当我开始填充该行时,它会在A列中获取时间戳。完成任务后,我在第一列中使用=CONCATENATE
来总结行A到H.第I列将公式内容填充到第300行或更多行。在输入时间戳之前,A列是空白的
(“ctrl +:”)。
我想要做的是通过命令按钮运行宏,它将在A列中找到最后一个带时间戳的行,然后选择并将第I列中该行的内容(而不是公式)复制到剪贴板。 / p>
我试图修改我在stackoverflow中找到的许多不同的建议,但收效甚微。我不确定我做错了什么,我已经尝试了很多这些我不知道哪些我会与你分享一个例子。任何帮助将非常感谢!再次感谢!
答案 0 :(得分:0)
1)定义一个将一些文本复制到剪贴板的功能:
Sub CopyText(Text As String)
'VBA Macro using late binding to copy text to clipboard.
'By Justin Kay, 8/15/2014
Dim MSForms_DataObject As Object
Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
MSForms_DataObject.SetText Text
MSForms_DataObject.PutInClipboard
Set MSForms_DataObject = Nothing
End Sub
然后是这样的:
Sub GetLastTimestampAndCopy()
dim ws as worksheet
dim strValue as string
dim lngLastRow as long
set ws = Activeworkbook.Worksheets("LOG")
' Get the last populated cell in the first column
lngLastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' Get corresponding value in the same row but in column I
strValue = ws.Cells(lngLastRow, 9).Value
CopyText strValue
End Sub
执行第二个SUB,你应该在剪贴板上有值。