全部,
我有以下代码,当选择一个复制框时,它会将相邻文本复制到剪贴板。 (请参见图片);
Sub OptionButton4_Click()
Dim clipb As New DataObject
Dim clipc As New DataObject
clipb.SetText "" & "Customer XYZ."
clipb.PutInClipboard
End Sub
因此,客户XYZ将被复制到剪贴板。我会调整/修改代码,以便选择哪些框(可以将多个复制到剪贴板)
例如,如果客户XYZ&客户YY被选中将复制
到剪贴板。等
关于如何调整/修改上述代码的任何建议都将不胜感激。
由于
答案 0 :(得分:0)
首先,你需要决定是否需要
满足您的要求。
这3个选项按钮中的每一个都有一个唯一的名称来访问其值:
Worksheets("my-sheet-name").Shapes("Option Button 1").ControlFormat.Value
注意:按钮的名称可能与其标题/文字不同。
如果选择了选项按钮,则此值为1
。您可以通过以下方式阅读该按钮的标题/文字:
Worksheets("my-sheet-name").Shapes("Option Button 1").AlternativeText
所以我们最终得到类似的东西:
Dim clipb As New DataObject
Dim clipbText As String
Dim ws As Worksheet
Set ws = Worksheets("my-sheet-name")
If ws.Shapes("Option Button 1").ControlFormat.value = 1 Then
clipbText = "• " & ws.Shapes("Option Button 1").AlternativeText
ElseIf ws.Shapes("Option Button 2").ControlFormat.value = 1 Then
clipbText = "• " & ws.Shapes("Option Button 2").AlternativeText
ElseIf ws.Shapes("Option Button 3").ControlFormat.value = 1 Then
clipbText = "• " & ws.Shapes("Option Button 3").AlternativeText
End If
clipb.SetText clipbText
clipb.PutInClipboard
请注意,您必须调整工作表名称和选项按钮名称。
如果您需要同时选择多个方框,则需要使用复选框而不是选项框。
因此代码看起来会有所不同:
Dim clipb As New DataObject
Dim clipbText As String
Dim ws As Worksheet
Set ws = Worksheets("my-sheet-name")
If ws.Shapes("Check Box 1").ControlFormat.value = 1 Then
clipbText = clipbText & "• " & ws.Shapes("Check Box 1").AlternativeText & vbNewLine
End If
If ws.Shapes("Check Box 2").ControlFormat.value = 1 Then
clipbText = clipbText & "• " & ws.Shapes("Check Box 2").AlternativeText & vbNewLine
End If
If ws.Shapes("Check Box 3").ControlFormat.value = 1 Then
clipbText = clipbText & "• " & ws.Shapes("Check Box 3").AlternativeText & vbNewLine
End If
clipb.SetText clipbText
clipb.PutInClipboard