2017-08-02 160 views
0

我想填充一个动态命名范围到msgBox中,但获取类型不匹配错误的行Set xRg = xTxtVBA传递字符串作为范围,类型不匹配错误

下面是代码:

Sub showOfferRange() 
Dim xRg As Range 
Dim xTxt As String 
Dim xCell As Range 
Dim xStr As String 
Dim xRow As Long 
Dim xCol As Long 

On Error Resume Next 
xTxt = ThisWorkbook.Names("named_range") 
Set xRg = xTxt 

If xRg Is Nothing Then Exit Sub 
    On Error Resume Next 
    For xRow = 1 To xRg.Rows.Count 
     For xCol = 1 To xRg.Columns.Count 
      xStr = xStr & xRg.Cells(xRow, xCol).Value & vbTab 
     Next 
    xStr = xStr & vbCrLf 
    Next 

MsgBox xStr 

End Sub 

十分赞赏。

回答

2

您不能将Range对象设置为字符串变量。因此类型不匹配。

这样做:

Set rng = Range("named_range") 'since it's a workbook level name anyway

+0

真棒!按预期工作 – joell

+0

@joell - 太棒了。考虑标记为已回答,以便其他人知道前进。 –