2014-11-06 33 views
3

我正在尝试创建一个指向包含公式或常量的所有单元格的命名区域。但我得到的是与集合R =联盟(...创建包含常量或公式的所有单元格的命名范围?

我怎样才能得到这个工作?

Dim r As Range 

Set r = Union(Sheet1.Cells.SpecialCells(xlCellTypeConstants), Sheet1.Cells.SpecialCells(xlCellTypeFormulas), _ 
     Sheet22.Cells.SpecialCells(xlCellTypeConstants), Sheet22.Cells.SpecialCells(xlCellTypeFormulas)) 
+1

不'Union'与RA工作更换多张床单? – 2014-11-06 13:58:50

+0

这似乎是问题所在。谢谢! – user1283776 2014-11-06 14:05:28

回答

4

Union只与在同一表范围的工作开始于该行的错误信息你可以建立地址的集合这样虽然

Sub Main() 

    Dim arr As Variant 

    arr = Array(_ 
       GetAddresses(Sheet1, xlCellTypeConstants), _ 
       GetAddresses(Sheet1, xlCellTypeFormulas), _ 
       GetAddresses(Sheet2, xlCellTypeConstants), _ 
       GetAddresses(Sheet2, xlCellTypeFormulas) _ 
       ) 

    Dim r As Variant 
    For Each r In arr 
     If Len(r) > 0 Then Debug.Print r 
    Next 

End Sub 

Function GetAddresses(sh As Worksheet, cellType As XlCellType) As String 
    On Error Resume Next 
    GetAddresses = sh.Name & "!" & sh.Cells.SpecialCells(cellType).Address 
    On Error GoTo 0 
End Function 

如果你需要不同的方式处理错误,看看this answer

+3

++很好完成! Imp建议:当使用'SpecialCells'时,它处理错误:)) – 2014-11-06 14:26:14

+0

@SiddharthRout有效点:) – 2014-11-06 14:27:39

相关问题