0

我创建了一个 excel 宏,它采用格式非常糟糕的表格,并且在大多数情况下将所有数据放在正确的位置。因此,与其手动重新输入数据需要 8 多个小时,不如只需要大约 30 分钟来检查并确保一切正确。

在我的宏的最后,我创建了一个按钮,允许进行最终格式设置,它将工作簿设置为逗号分隔文件,以便可以将其导入数据库。

'The 4 arguments determine where the cells top left corner is and its width,height
Set btn = ActiveSheet.Buttons.Add( _
    ActiveSheet.Columns(7).Left, _
    ActiveSheet.Rows(2).Top, _
    ActiveSheet.Columns(1).Width * 2, _
    ActiveSheet.Rows(1).Height * 2).Select

'creates all the settings for the button
Selection.Name = "btnFormat"
Selection.OnAction = "Final_Formatting"
ActiveSheet.Shapes("New Button").Select
Selection.Characters.Text = "Complete Formatting"

问题是,最后按钮仍然被选中,我想取消选择它。我在其他地方搜索过,大多数人说只选择其他东西,但我只是想取消选择按钮,没有别的。这可能吗?

另外,如果有人对如何清理这 4 个参数有任何建议,请随时发表评论。我从互联网上得到了那部分,并根据我自己的目的对其进行了调整,但这看起来很荒谬。

提前致谢。

4

2 回答 2

0

如果您不想选择您的按钮,请不要选择它(就像您目前所做的那样)。我建议对下面的代码进行一些改进:

Sub TEST()
Dim btn As Button
Set btn = ActiveSheet.Buttons.Add( _
    ActiveSheet.Columns(7).Left, _
    ActiveSheet.Rows(2).Top, _
    ActiveSheet.Columns(1).Width * 2, _
    ActiveSheet.Rows(1).Height * 2)
'there is no selection method above!

'creates all the settings for the button
With btn
    .Name = "btnFormat"
    .OnAction = "Final_Formatting"
    'ActiveSheet.Shapes("btnFormat").Select- this line is not needed
    .Characters.Text = "Complete Formatting"
End With

End Sub

因此,将在代码运行后选择单元格范围。

于 2013-06-19T14:21:36.313 回答
0

至于总是有一个选定的元素,我认为不能存在“取消选择”选项(因为可能会引发没有选择任何元素的情况)。通常的程序只是选择其他东西。在这种情况下,我想选择任何单元格都适合您:

Range("A1").Select

关于按钮的创建,首先,这段代码是错误的(实际上是在我的电脑上触发错误)。如果你想使用Select你必须删除该Set btn =部分。除此之外,您必须传递这些参数,但可以删除 ActiveSheet 部分,只要它是隐式的(建议依赖工作表的实际名称;但如果情况“受控制”,您可以依赖 ActiveSheet )。

Set btn = ActiveSheet.Buttons.Add(Columns(7).Left, Rows(2).Top, Columns(1).Width * 2, Rows(1).Height * 2)

ActiveSheet.Buttons.Add(Columns(7).Left, Rows(2).Top, Columns(1).Width * 2, Rows(1).Height * 2).Select
于 2013-06-19T14:23:01.993 回答