我正在尝试创建一个电子表格,其中我需要每行中的一个按钮以在其旁边的单元格中标记时间,然后按时间顺序对行进行排序。我的问题是按钮不移动。例如。单元格B1中的按钮更改单元格A1中的时间,单元格B2中的按钮更改单元格A2中的时间,对于此示例,假设A2的时间小于A1,因此当排序的A1和A2有效地交换数据时。现在B2中的按钮改变单元格A1中的时间。
一直试图解决这个问题几个小时,我们将非常感谢任何帮助。
答案 0 :(得分:0)
根据David的评论,您可以尝试此设置。
Dim r As Range
Private Sub CommandButton21_Click()
r.Offset(0, -1).Value = Time
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo halt
Application.EnableEvents = False
If Target.CountLarge > 1 Then GoTo moveon
Dim btn As OLEObject: Set btn = Me.OLEObjects("CommandButton21")
If Not Intersect(Target, Me.Range("B:B")) Is Nothing Then
Set r = Target
With btn
.Visible = True
.Left = r.Left
.Top = r.Top
.Width = r.Width
.Height = r.Height
End With
Else
btn.Visible = False
End If
moveon:
Application.EnableEvents = True
Exit Sub
halt:
MsgBox Err.Description
Resume moveon
End Sub
您需要创建一个名为CommandButton21
的ActiveX控件
在B列中选择了某些内容时,此按钮会移动并显示
您可以在 CommandButton21_Click 事件中添加排序例程。