我有一个工作表,我用它来放置原始数据,以便验证我从原始数据中剪切的单个文件上的数据。问题是,脚本倾向于截断它验证的数据,并忽略我带过来的行末尾的空行。
我如何更改这一点:
Private Const numCols As Long = 76去做一个columns.count?
例如:如果有76列,但是第2行的数据一直到50列,那么它将接受该行并转置它,而不是转置51-76列中的那些尾随空单元格,从而在我验证时偏移我的数据并返回FALSE值。现在,我必须更新long变量,以确保当我的数据集更改时,它不会截断尾随空格。
我该怎么做才能让它更有动态性,同时又能确保脚本在需要包含空格时不会忽略它们?
发布于 2019-03-09 01:12:40
如果您的标题确定了有多少列,那么您可以对该行进行计数以获得数量。假设你的头在第一行。
Dim numCols as Long
numCols = Application.WorksheetFunction.Counta(sheet1.rows(1))您也可以从用户那里获得它
numCols = Application.InputBox("Enter # of columns")如果您在几个过程中使用列数,则可以将其作为参数传递或使用模块级变量。在模块的顶部声明一个模块级变量(在声明部分中,在任何Sub或Function语句之前),如下所示
Private numCols As Long您仍然需要在运行的第一个过程中设置它。它不能是常量,因为它会根据第一行的宽度而变化。
您可以对工作表的引用执行相同的操作。我使用了工作表的代号(用户看不到也无法更改的名称),但是您可以创建一个变量来引用工作表
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheet")我通常使用代号而不是变量,但这是个人喜好。
https://stackoverflow.com/questions/55066937
复制相似问题