我的代码查找具有特定标题的列的列号,查看文件的长度并根据该列生成范围。例如:
Set wb1 = ActiveWorkbook
Set ws1 = wb1.Worksheets("Sheet1")
With ws1
FinalColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
FinalRow = .Range("B" & .Rows.Count).End(xlUp).Row
For j = 1 To FinalColumn
.Cells(1, j).Value = "FolderId" Then
FolderId_column = j
End If
Next j
Total_Folder_Column = FinalColumn + 1
range_FolderId_Fixed = .Cells(2, FolderId_column).Address & ":" & .Cells(FinalRow, FolderId_column).Address
range_FolderId_Cell = .Cells(2,FolderId_column).Address(RowAbsolute:=False,ColumnAbsolute:=False)
range_Total_Folder_Fixed = .Cells(2, Total_Folder_Column).Address & ":" & .Cells(FinalRow, Total_Folder_Column).Address
.Range(range_Total_Folder_Fixed).Formula = "=SUMIF(" & range_FolderId_Fixed & "," & range_FolderId_Cell & "," & range_Total_Folder_Fixed & ")"
End With
我的问题是我不知道如何定义变量的DIM,例如range_FolderId_Cell。
这些字符串或范围是否类型?
Dim range_FolderId_Fixed As ???
Dim range_FolderId_Cell As ???
我在猜测
Dim FinalRow As Long
感谢。
答案 0 :(得分:3)
在您的情况下,您应该使用此变量声明。
Dim range_FolderId_Fixed as String
提示 - 如果您不知道应该使用哪种变量类型,则可以始终以这种方式进行检查:
'Delcare as variable
Dim range_FolderId_Fixed as Variant
' after you set the value in your code
range_FolderId_Fixed = ...
'check automatic assignment in this way
Debug.Print TypeName(range_FolderId_Fixed)
因此,您在即时窗口中的情况下会得到String
。接下来,您可以返回代码并将Variable
更改为String
。
答案 1 :(得分:1)
Dim range_FolderId_Fixed as String