我有一个工作表,可用来放置原始数据,以验证从该原始数据切出的单个文件上的数据。事实是,脚本倾向于截断它验证的数据,而忽略我带来的行尾的空白行。
我该如何更改:
Private Const numCols As Long = 76
要做一个columns.count
?
例如:如果有76列,但第二行直到50列为止都有数据,它将采用该行并将其转置,而不会在51-76列中留下空白单元格,从而偏移我的数据并返回FALSE
我验证时的值。现在,我必须更新该long
变量,以确保在我的数据集更改时它不会切断尾随空白。
我可以做些什么来使其更具动态性,同时还要确保在我还需要包含空格时脚本不会忽略空格?
答案 0 :(得分:0)
如果标题确定了多少列,那么您可以计算该行以获取数字。假设标题位于第1行。
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")
我通常使用代号而不是变量,但这是个人喜好。