excel - Excel VBA 生成的复选框未与单元格对齐
问题描述
我想创建一列 100 个复选框来选择行。
我可以创建复选框,但随着它们在工作表中进一步向下移动,复选框会慢慢偏离所需的行。标记为第 101 行的 复选框 - chkbox101 在第 102 行结束。在第 102 行标记为 chkbox101 的复选框
Dim cBox As CheckBox
Dim cell As Range
For Each cell In Range("a2:a101")
Set cBox = ActiveSheet.CheckBoxes.Add(cell.Left, cell.Top , cell.Width, cell.Height)
cBox.Text = "CHKBX " & cell.Row
Next cell
我的缩放设置是 100% 我的行高是 14.4
我制作了一个独立的电子表格,完全空白,里面只有这个宏。
我以前在另一个电子表格中发生过这种情况,基本上是相同的编码技术。
当然,现在我也无法让它发生。我会看看我是否可以用另一种方式来追寻原因。如果/当我找到我的原因/错误时,我会更新。
解决方案
该问题是由在扩展桌面显示器上运行电子表格并打开应用程序的修复缩放引起的。
我正在使用一台笔记本电脑,显示器延伸到第二台显示器。当电子表格完全在笔记本电脑显示器上时,代码达到了预期的结果(A列)(为什么我不能在上面发生)。当代码与电子表格一起运行时,即使部分在外部监视器上运行,也会出现不对齐的问题(C 列) - 复选框不会留在适当的行中。
当打开应用程序的修复缩放时,运行代码的监视器会更改输出。
我还稍微更改了宏以允许更改输出列。
Sub InsertCheckboxes()
将 cBox 调暗为复选框
将 ThisCol 调暗为 String ThisCol = Sheet1.Range("d1").Value
将单元格调暗为范围
对于 Range(ThisCol & "2:" & ThisCol & "101") 中的每个单元格设置 cBox = ActiveSheet.CheckBoxes.Add(cell.Left, cell.Top, cell.Width, cell.Height)
cBox.Text = "CHKBX " & cell.Row
下一个单元格 End Sub
并附在此处是 原始复选框对齐问题的图片的屏幕截图,并且修复缩放已关闭
col a checkboxes with fix scaling on,主显示上的电子表格 标记为第 101 行的复选框 - chkbox101 最终在第 101 行结束
col C 带有固定缩放的复选框,另一个显示上的电子表格 标记为第 101 行的复选框 - chkbox101 最终出现在第 102 行
col e 带有固定缩放OFF的复选框,另一个显示上的电子表格 标记为第 101 行的复选框 - chkbox101 按预期在第 101 行结束
推荐阅读
- python - 使用 Python 高效解析大型 XML 文件
- c - 如何在不需要用户输入的情况下刷新标准输入?
- git - Git重置后头部仍然分离 - 很难
- apollo-server - typedef 中定义的注释未出现在 Apollo Server 2.0 Playground UI 中
- python - 处理不定长度的文本时如何管理列表索引?
- matplotlib - 在 Jupyter Notebook 中使用 PyPlot 作为 Plot.jl 的后端时如何设置 svg 输出
- c# - 在控制器之外使用 LinkGenerator
- laravel - Vue.js Axios 帖子未返回 JSON 格式。我怎样才能在控制器上捕捉到它?
- c# - 登录表单 [RedirectFromLoginPage] 不起作用,母版页
- dart - 转换的纪元时间比模拟器提前 5 小时