将多单元范围设置为变体可以工作,但将多单元范围设置为字符串不起作用。为什么?

时间:2014-12-09 09:46:50

标签: vba excel-vba excel

以下代码有效。我想从表中读取所有字符串。下面的代码会自动将我的变量vSheets更改为一个数组,该数组可以为表中的所有字符串提供空间。

但如果我将Dim vSheets As Variant更改为Dim vSheets As String,我会在Dim vSheets As Variant行上收到错误消息。

Sub GetSheets()
    'Get sheet names from tToggleSheets.DatabodyRange
    Dim wksTables As Worksheet
    Dim loSheets As ListObject
    Dim vSheets As Variant

    Set wksTables = GetSheetByCodename(ThisWorkbook, "wTables")
    Set loSheets = wksTables.ListObjects("tToggleSheets")
    vSheets = loSheets.DataBodyRange
End Sub

为什么VBA会自动扩展变量变量以为loSheets.DataBodyRange中的所有字符串腾出空间,但是在相同的情况下不会扩展字符串变量?

我应该在上面的情况,变量或字符串中使用哪种变量类型?

1 个答案:

答案 0 :(得分:0)

DataBodyRange返回Range数据类型。我是vba的初学者,但我认为Variant对于这种情况来说是个不错的选择。