【问题标题】:Excel Check Boxes via VBA通过 VBA 的 Excel 复选框
【发布时间】:2020-05-20 01:15:45
【问题描述】:

我正在尝试使用 VBA 将复选框添加到工作表。我有几个代码变体,它们达到了相同的结果。虽然前几个复选框在活动单元格内对齐,但在几行之后,复选框越来越低,最终出现在下一行中。 我该如何解决这个问题。

.CheckBoxes.Add(Left:=.Cells(ToRow, "B").Left, Top:=.Cells(ToRow, "B").Top, Width:=.Cells(ToRow, "B").Width, Height:=.Cells(ToRow, "B").Height).Select

Excel 复选框

【问题讨论】:

标签: excel vba checkbox


【解决方案1】:

我已经为 100 行尝试了以下代码,它工作正常。另外请确保缩放系数应为 100%。如果没有,那么您可以使用:

ActiveWindow.Zoom = 100

Sub test()
    Dim ToRow As Long
    Dim LastRow As Long
    Dim MyLeft As Double
    Dim MyTop As Double
    Dim MyHeight As Double
    Dim MyWidth As Double
    LastRow = 100
    For ToRow = 2 To LastRow
            MyLeft = Cells(ToRow, "B").Left
            MyTop = Cells(ToRow, "B").Top
            MyHeight = Cells(ToRow, "B").Height
            MyWidth = Cells(ToRow, "B").Width

            ActiveSheet.CheckBoxes.Add(MyLeft, MyTop, MyWidth, MyHeight).Select
             With Selection
                .Caption = "1"
                .Value = xlOff
                .LinkedCell = "B" & ToRow
                .Display3DShading = False
            End With
    Next ToRow
End Sub

【讨论】:

  • 无论使用我现有的工作簿还是新的电子表格,我都会得到相同的结果。使用提供的代码,第 1 行中没有复选框,第 10 行爬到下面的行,最后的复选框出现在第 102 行
  • 我现在从不同的行开始运行代码,发现无论你从第 2 行 (col b)、第 12 行 (col c) 还是第 20 行 (col d) 开始每列对齐,所以这不是渐进式的,每个框的位置都稍微低一点。我不知道如何添加屏幕截图来显示我的评论
  • 你用的是什么excel版本??
  • Office 365 专业增强版
  • 你检查过缩放系数吗?应该是 100
猜你喜欢
  • 2014-09-13
  • 2013-10-23
  • 2016-06-25
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2021-07-15
相关资源
最近更新 更多