首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA:单击重复的按钮,然后插入行

Excel VBA:单击重复的按钮,然后插入行
EN

Stack Overflow用户
提问于 2017-07-13 19:19:37
回答 1查看 1.6K关注 0票数 0

我正在为Excel中的一个按钮编写代码,目的是获取单击按钮的行号,在给定行号的情况下复制相应的行,然后在单击按钮的原始行下面插入和移动重复的行。见图片,例如:在按下按钮之前,点击这里获取图片。 按下按钮后,点击这里获取图片。

我尝试过根据我在网上找到的类似问题的解决方案(如这里这里(以及其他地方))对代码进行几次修订,但我无法找到解决重复出现的错误的解决方案,即无法获得工作表类的按钮属性。根据我在网上收集到的有关此错误的信息,当传递给工作表函数的任何参数都不是正确的类型或根本没有意义时,就会发生这种情况。下面我发布了我的代码的两次迭代;

代码语言:javascript
运行
复制
    Private Sub CorrugatedR_Click()
    Dim b As Object, RowNumber As Integer
    ActiveSheet.Activate
    Set b = ActiveSheet.Buttons("CorrugatedR")
    With b.TopLeftCell
        RowNumber = .Row
        Rows(RowNumber + 1).Insert Shift:=xlDown
        Rows(RowNumber).Copy Rows(RowNumber + 1)
    End With
End Sub

另一个版本应该做同样的事情(我已经做了很多次了):

代码语言:javascript
运行
复制
Private Sub CorrugatedR_Click()
Dim b As Object, RowNumber As Integer
ActiveSheet.Activate
ActiveSheet.Buttons("CorrugatedR").Select
ActiveSheet.Buttons("CorrugatedR").Copy
b.Paste
    With b.TopLeftCell
        RowNumber = .Row
    End With
Rows(RowNumber + 1).Insert Shift:=xlDown
Rows(RowNumber).Copy Rows(RowNumber + 1)
End Sub

一个重要的提示是,最初没有调用按钮本身的名称:ActiveSheet.Buttons("CorrugatedR"),而是实现了ActiveSheet.Buttons(Application.Caller),因为有几个人提出了这个建议,但这给了我另一个错误Application.Caller = error 2023。在进行了研究之后,我认为这些问题都与ether与打字或一些我不知道的东西有关的问题有关;我尝试实现并使用来自解决方案的信息,以解决发现这里的相同错误,但仍然没有成功。我的直觉是,问题可能在我设置bSet b = ActiveSheet.Buttons("CorrugatedR")的代码中。

我对VBA和Excel还不熟悉,所以我的整个方法本身可能会出错,我非常感谢任何帮助,我已经在这个问题上被困了一段时间了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 19:57:36

如果您的代码位于模块中,则此示例代码将工作(用按钮的名称替换CommandButton1 ):

代码语言:javascript
运行
复制
Private Sub example()
    MsgBox ActiveSheet.CommandButton1.TopLeftCell.Row
End Sub

如果您的代码位于工作表上,则为

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()
    MsgBox Me.CommandButton1.TopLeftCell.Row
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45089320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档