首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否用对话框替换常量以更新范围?

是否用对话框替换常量以更新范围?
EN

Stack Overflow用户
提问于 2019-03-09 00:09:45
回答 1查看 31关注 0票数 0

我有一个工作表,我用它来放置原始数据,以便验证我从原始数据中剪切的单个文件上的数据。问题是,脚本倾向于截断它验证的数据,并忽略我带过来的行末尾的空行。

我如何更改这一点:

代码语言:javascript
运行
复制
Private Const numCols As Long = 76

去做一个columns.count

例如:如果有76列,但是第2行的数据一直到50列,那么它将接受该行并转置它,而不是转置51-76列中的那些尾随空单元格,从而在我验证时偏移我的数据并返回FALSE值。现在,我必须更新long变量,以确保当我的数据集更改时,它不会截断尾随空格。

我该怎么做才能让它更有动态性,同时又能确保脚本在需要包含空格时不会忽略它们?

EN

Stack Overflow用户

回答已采纳

发布于 2019-03-09 01:12:40

如果您的标题确定了有多少列,那么您可以对该行进行计数以获得数量。假设你的头在第一行。

代码语言:javascript
运行
复制
Dim numCols as Long
numCols = Application.WorksheetFunction.Counta(sheet1.rows(1))

您也可以从用户那里获得它

代码语言:javascript
运行
复制
numCols = Application.InputBox("Enter # of columns")

如果您在几个过程中使用列数,则可以将其作为参数传递或使用模块级变量。在模块的顶部声明一个模块级变量(在声明部分中,在任何Sub或Function语句之前),如下所示

代码语言:javascript
运行
复制
Private numCols As Long

您仍然需要在运行的第一个过程中设置它。它不能是常量,因为它会根据第一行的宽度而变化。

您可以对工作表的引用执行相同的操作。我使用了工作表的代号(用户看不到也无法更改的名称),但是您可以创建一个变量来引用工作表

代码语言:javascript
运行
复制
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheet")

我通常使用代号而不是变量,但这是个人喜好。

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

https://stackoverflow.com/questions/55066937

复制
相关文章

相似问题

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