首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA自动重命名复选框

Excel VBA自动重命名复选框
EN

Stack Overflow用户
提问于 2011-05-20 18:11:29
回答 1查看 5.1K关注 0票数 0

我目前正在处理几个带有许多复选框的Excel工作表。当您输入复选框时,它的名称为CheckBox1、CheckBox2等,但是否可以自动重命名它们?在我的代码中,我现在必须将所有复选框重命名为Rij11_1、Rij11_2等。

如果这可以一行一行地自动完成,将为我节省大量时间。

有人知道怎么做吗?

非常感谢!

致以亲切的问候,马克

EN

回答 1

Stack Overflow用户

发布于 2011-05-20 18:45:23

假设复选框位于代号为Sheet1的工作表上

代码语言:javascript
复制
Sub test()

Dim obj As OLEObject, ChkBoxRow as long

ChkBoxRow = 1 'Only change checkboxes with topleft corner in row 1

With Sheet1
'Loop AX controls
For Each obj In .OLEObjects
    'Check for checkbox only
    If TypeName(obj.Object) = "CheckBox" Then

        'Examples to identify location (as suggested by Dick Kusleika)
        'ChkBoxRow = obj.TopLeftCell.Row
        'ChkBoxCol = obj.TopLeftCell.Column
        'ChkBoxAdd = obj.TopLeftCell.Address

        'ChkBoxRow = obj.BottomRightCell.Row
        'ChkBoxCol = obj.BottomRightCell.Column
        'ChkBoxAdd = obj.BottomRightCell.Address
        'etc

        if obj.TopLeftCell.Row = ChkBoxRow then
           obj.Name = "Rij11_" & Right(obj.Name, Len(obj.Name) - 8)
        end if

    End If
Next obj
End With
End Sub

我已经更新了Dick Kusleika前几天指出的一个很好的方法来定位复选框所在的位置。您可以测试If obj.TopLeftCell.Row = 1 Then

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6070403

复制
相关文章

相似问题

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