Excel VBA:范围描述的变量类型是什么?

时间:2013-12-05 15:48:52

标签: excel-vba vba excel

我的代码查找具有特定标题的列的列号,查看文件的长度并根据该列生成范围。例如:

    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

感谢。

2 个答案:

答案 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