我对VBA很陌生,并试图看看我是否可以为某个进程创建代码。我有一个电子表格,在第一行(公司A,公司B等)中有一些唯一标识符和公司名称。在以下列中,还有一些其他列,例如位置,密钥联系人等,它们对应于每个公司。最后,有一个专栏"评论"。这些评论会定期更新。
我想要做的是创建一个宏,让我可以找到独特公司的评论,复制(或剪切)它并将其粘贴到历史评论中#34;工作簿中的工作表,以便我可以保留过去注释的记录。有没有办法创建一个宏来做到这一点?我已经创建了一些内容,如果我输入确切的Cell Name,它会复制该注释并粘贴它但我想看看我是否可以指定一个单元格,我可以输入公司名称,宏将查看该单元格中的内容,然后复制相应的注释,将其粘贴到背板中,然后清除单元格以便我可以输入新注释。我不知道这是否可以远程实现,但任何帮助将不胜感激!
Sub Range_copy()
Dim cellwant As Variant
Dim cellhistory As Variant
Dim LRow As Variant
Dim Account As Variant
Worksheets("AAG").Select
Worksheets("AAG").Range("I3").Select
cellwant = Selection.Value
FindString = Sheets("AAG").Range("B5:B65").Value
cellwant = Selection.Value
Worksheets("AAG").Range(cellwant).copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range("A1").Select
答案 0 :(得分:0)
对于公司名称的“相应评论”,问题有点模糊。但是,我认为您正在寻找的内容可以使用Worksheet_Change事件完成,该事件将在给定工作表上进行更改时自动触发。
Private Sub Worksheet_Change(ByVal Target As Range)
Const csCommentCol As Integer = 5 'The column that contains the comments
Const csTarget As String = "Sheet2" 'The worksheet with the record of comments
Const csTargetCol As String = "A" 'The column on the sheet with the list
Dim shtTarget As Worksheet
Dim lngLast As Long
Dim strOldComment As String
Dim strNewComment As String
Application.EnableEvents = False 'Prevent this procedure from triggering repeatedly
If Target.Column = csCommentCol Then 'Check if it's the comment column that's being changed
Set shtTarget = Sheets(csTarget) 'Define our target sheet. Only here for clarity later
lngLast = shtTarget.Range(csTargetCol & Rows.Count).End(xlUp).Row + 1 'Find the first empty row
strNewComment = Target.Value 'Copy the newly entered comment into a variable for safekeeping
Application.Undo 'Undo the change to return to the old value
strOldComment = Target.Value 'Copy the old value into a string for future use
Target.Value = strNewComment 'Restore the new comment
shtTarget.Range(csTargetCol & lngLast).Value = Target.Value 'Copy the value over
Target.Select
End If
Application.EnableEvents = True
End Sub
将此代码放在将包含注释的工作表的Sheet对象(而不是模块)中。根据需要替换顶部的常量。每次更改时它都会自动运行;它检查是否在我们指定的列中进行了更改(如果您愿意,可以是指定的单元格);如果有变化,它会在我们的记录表中找到第一个空单元格并复制那里单元格中的值;然后它清除目标单元格以获取新条目并重新选择它。