Excel vba 重命名复选框

标签 excel vba checkbox renaming

我有一个包含许多复选框的工作表。 Excel 自动将它们命名为 CheckBox1、CheckBox2 等...但是,对于我的文档,我需要将它们全部重命名为 Rij11_1、Rij11_2 等(Rij11 是第 11 行,_1 是该行中的第一个复选框,依此类推) .
重要的是每行的重命名都从 _1 开始。

Stackoverflow 成员 Osknows 和 Dave DuPlantis 已经在这个问题上帮助了我(非常感谢您的帮助),代码如下:

Sub test()  
    Dim obj As OLEObject, ChkBoxRow as long  
    ChkBoxRow = 11   
    With Worksteets("Storia") 
    For Each obj In .OLEObjects     
    If TypeName(obj.Object) = "CheckBox" Then          
        if obj.TopLeftCell.Row = ChkBoxRow then            
            obj.Name = "Rij11_" & Right(obj.Name, 1)         
        end if      
    End If 
    Next obj
    End With
End Sub 

但是,每行上第一个重命名的复选框不是从 1 开始(通常是从 7 开始,由于某种原因让我无法理解),如果一行中有 10 个以上的复选框,编号不会超过 10。在 _9 之后,我得到 _0 而不是 _10,然后在 _0 之后,它再次以 _1 继续,导致行中的名称重复。

有没有人可以帮助我解决这个重新编号的问题?

非常感谢!

亲切的问候,
马克

最佳答案

这是摆脱这些的简单方法。突出显示要删除复选框和相关文本的列或单元格。然后使用 CTRL+C 剪切它们,然后移动到不同的工作表中,粘贴它们。 (此方法是假设您要删除一列复选框但保留另一列,或删除随机复选框)。现在按 F5,然后是 Special,然后是 Objects(在您粘贴要删除的工作表上)它们都将被选中,现在剪掉它们,完成! :)

关于Excel vba 重命名复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097761/

相关文章:

javascript - 获取数据时在excel中保留日期格式

mysql - .CopyFromRecordset 正在截断粘贴到 Excel 中的数据

javascript - Kendo Listview,添加了复选框,添加了全选,将选中和取消选中一次,不会再次选中所有。

asp.net-mvc - 如果被禁用,Html.CheckBox 返回 false,即使被选中

c# - 如何根据 MVC 中的复选框更改更新数据库

excel - 获取文件excel的最后修改日期

r - 如何检查我们在excel中具有相同唯一ID的每个唯一值

vba - 比较具有相同单元格数的两个行范围

vba - 循环遍历工作簿并获取一个值(如果存在于单元格中)

vba - 范围没有被复制到数组中