Excel VBA:获取点击按钮的行

12 浏览
0 Comments

Excel VBA:获取点击按钮的行

我正在尝试在Excel中创建一个按钮,它可以将活动工作簿中的特定单元格范围复制到另一个工作簿中。当我指定一个固定的范围时,复制这个范围的操作完全正常,但我不知道如何找出点击按钮所在行的行号。

每一行包含大约7个单元格,第8个单元格包含一个附有宏的形状(按钮)。

当用户按下该按钮时,需要复制与包含被按下按钮的行相同的7个单元格。

使用ActiveCell没有用,因为按下按钮并不会将该单元格设置为活动单元格。我搜索了很多,但似乎找不到如何获取这个值的方法。

一旦我获得了点击按钮的行号,我就可以自己解决剩下的问题了。

0
0 Comments

问题的出现的原因是作者想要获取点击的按钮所在的行数和列字母,但作者不知道如何实现。作者在寻找相关信息后找到了一些线索,但还需要进一步的帮助。

解决方法是作者在寻找信息的过程中找到了一个有用的提示,即使用ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row可以获取到点击按钮所在的行数。作者尝试了这个方法,并成功地将行数显示在了一个消息框中。

然而,作者在获取列字母时遇到了问题,作者想要将列数转换为对应的字母表示。为了解决这个问题,作者在stackoverflow.com上提问并寻求帮助。

作者提到了这个问题与之前获得按钮所在行数的问题有关,暗示作者在寻找答案时可能会遇到相关的解决方案。

这篇文章讲述了作者在Excel VBA中获取点击按钮所在行数和列字母的问题,并展示了作者在解决问题的过程中所做的尝试和寻求帮助的过程。

0
0 Comments

'Same for rownumbers!

Sub Mainscoresheet()

' Mainlineup Macro

Dim b As Object, RowNumber As Integer

Set b = ActiveSheet.Buttons(Application.Caller)

With b.TopLeftCell

RowNumber = .Row

End With

MsgBox "Row Number " & RowNumber

End Sub

在上面的代码中,我们定义了一个名为Mainscoresheet的VBA子程序。这个子程序的作用是获取点击按钮所在的行号,并在弹出窗口中显示出来。

该子程序的执行过程如下:

1. 首先,我们声明了两个变量b和RowNumber。变量b用于存储按钮对象,变量RowNumber用于存储行号。

2. 接下来,我们使用Set语句将按钮对象赋值给变量b。这里的ActiveSheet.Buttons(Application.Caller)表示当前活动工作表上被点击的按钮。

3. 然后,我们使用With语句来引用按钮对象的左上角单元格。通过调用TopLeftCell属性,我们可以获取按钮所在的单元格。

4. 接着,我们将按钮所在单元格的行号赋值给变量RowNumber。通过调用Row属性,我们可以获取单元格所在的行号。

5. 最后,我们使用MsgBox函数在弹出窗口中显示行号。通过连接运算符&,我们将固定字符串"Row Number "和变量RowNumber连接起来。

这段代码的作用是帮助我们获取点击按钮所在的行号,并在弹出窗口中显示出来。通过这个功能,我们可以在Excel VBA中实现一些与按钮点击相关的操作,例如根据按钮所在的行号执行特定的操作。

希望这篇文章对你理解Excel VBA中获取按钮所在行号的方法有所帮助。如果你还有其他关于Excel VBA的问题,欢迎继续提问。

0
0 Comments

问题的出现原因是用户想要通过点击按钮来获取所在行的行号,但是在VBA中没有直接的方法来获取按钮所在的行号。所以用户需要编写一段代码来实现这个功能。

解决方法是用户可以使用`ActiveSheet.Buttons(Application.Caller)`来获取被点击的按钮对象,并通过`.TopLeftCell.Column`属性来获取按钮所在的列号。最后通过`MsgBox`函数将列号输出。

以下是解决方法的完整代码:

Sub Mainscoresheet() 
     ' Mainlineup Macro
    Dim b As Object, cs As Integer 
    Set b = ActiveSheet.Buttons(Application.Caller) 
    With b.TopLeftCell 
        cs = .Column 
    End With 
    MsgBox "Column Number " & cs 
End Sub 

这段代码可以方便地获取动态生成的按钮所在的列号。

0