excel - 使用命名范围字母作为起点
问题描述
我使用列 R、ES 或 KE 作为不同事物的起点。但是,我确信这本工作手册会发展,因为它已经这样做了,而且这些起点将会改变。我有很多这些起点的实例,因此我想这样做,以便我可以非常快速地更改这些值,而不是遍历所有代码。
为此,我创建了一个命名范围并将其命名为 'vb_PercentLetter' 。这是 R 列的起点。vb_PercentLetter 的值是 'R' 在 vba 我这样使用它:
x = ws1.Range("vb_PercentLetter" & rowCounter).Offset(0, colCounter) * 100
但是,这不起作用我可以使用这种方法,还是应该恢复做其他事情?
解决方案
这是您对 Jeeped 的评论:“vb_PercentLetter 实际上只是字母 R,没有别的,所以它没有分配给任何工作表”
如果是这种情况,则 vb_PercentLetter 实际上是工作簿名称而不是命名范围。“R”不是一个范围。
Names("vb_PercentLetter")
将返回="R"
使用常量表达式将给出所需的结果
在公共代码模块中
Public vb_PercentLetter = "R"
我更喜欢枚举每个工作表的列。这使得维护代码变得非常容易。
Public Enum WSCoumns1
ws1Percent = 10
ws1ES = 11
ws1KE = 12
End Enum
枚举语法
ws1.Cells(rowCounter, ws ).Offset(0, colCounter).Offset(0, colCounter) * 100
推荐阅读
- git - 如何给出从 gitlab 获取提交历史记录和结帐的日期?
- python - 给定速度场的 FiPy 对流
- c# - 如何使用 Rider IDE 部署 .NET 程序的安装文件?
- java - libgdx 3d 渲染,我的 fps 越来越低
- javascript - 仅使用 Javascript 的基于角色的登录
- angular - 运行 Angular Universal 时未应用 Angular 材质样式
- ios - UICollectionView 不会滚动到项目(在:IndexPath,在:位置)
- ruby - Ruby:在步骤循环中使用变量作为范围
- kotlin-multiplatform - Kotlin native - 在 ios 和 android 之间共享网络、sqlite 数据库和逻辑
- php - 在渲染之前使用 PHP 替换 HTML 页面中的信息