【发布时间】:2017-12-18 17:59:00
【问题描述】:
我正在为 Excel 中的按钮编写代码,目的是获取单击按钮的行号,复制给定行号的相应行,然后在单击按钮的原始行下方插入和移动复制的行. 例如看图片: Click here for picture before button is pressed. Click here for picture after button is pressed.
我已经根据我在网上找到的类似问题的解决方案尝试了几次代码修订,例如 here 和 here(以及其他地方),但我找不到解决我反复出现的错误 无法获取 Worksheet 类的 Buttons 属性。根据我在网上收集到的有关此错误的信息,当传递给工作表函数的任何参数的类型不正确或根本没有意义时,通常会发生此错误。下面我发布了我的代码的两次迭代;
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
另一个版本,应该做同样的事情(我一直在玩很多):
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。在进行研究之后,我认为这些问题都与以太它与打字或我不知道的事情有关的相同重复出现的问题有关;我尝试实施和使用解决方案中的信息来找到here 的相同错误,但仍然没有运气。我的直觉是问题可能出在我设置b的代码中:Set b = ActiveSheet.Buttons("CorrugatedR")
我还是 VBA 和 Excel 的新手,所以我的整个方法本身可能会被误解,我非常感谢任何帮助,我已经坚持了一段时间。
【问题讨论】:
标签: excel vba button row typing