对于我的问题,我想在单元格旁边创建一个非NULL或“”的按钮。按钮的标题必须遵循旁边单元格中的值。
例如:
Range("D3")
Range("C3")
C3
都会出现一个按钮。因此,我已经发现我需要手动编写CommandButton
代码才对吗?
尽管如此,万人提前感谢所有人。
答案 0 :(得分:3)
您可以录制宏,方法是添加命令按钮以查看其创建方式,然后合并花哨的部分。注意OLE Command按钮对象的属性,更加注意它们。
e.g。 theButton.Name
但是标题是通过theButton.Object.Caption
等设置的。
以下是一段代码摘要: -
Option Explicit
Sub createButtons()
Dim theButton As OLEObject
Dim rngRange As Range
Dim i As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set rngRange = Sheets(2).Range("B2")
For i = 0 To 9
If rngRange.Offset(i, 0).Value <> "" Then
With rngRange.Offset(i, 1)
Set theButton = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1", _
Left:=.Left, _
Top:=.Top, _
Height:=.Height, _
Width:=.Width)
theButton.Name = "cmd" & rngRange.Offset(i, 0).Value
theButton.Object.Caption = rngRange.Offset(i, 0).Value
'-- you may edit other properties such as word wrap, font etc..
End With
End If
Next i
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
输出:
答案 1 :(得分:2)
试试这个。
Public Sub Worksheet_Change(ByVal Target As Range)
Dim col As Integer
Dim row As Integer
col = Target.Column
row = Target.row
If Not IsNull(Target.Value) And Not IsEmpty(Target.Value) Then
Application.EnableEvents = False
Buttons.Add Cells(row, col - 1).Left, Cells(row, col - 1).Top, Cells(row, col - 1).Width, Cells(row, col - 1).Height
Application.EnableEvents = True
End If
End Sub
打开开发人员标签 - &gt; Visual Basic,双击&#34; Sheet1&#34;,然后将此代码粘贴到那里。通过在Sheet1上的单元格中键入文本然后远离该单元格来测试它(例如,按Enter键)。