|
テストしてみると、確かにエラーになりますね・・。
で、複数の範囲なのだから Areasプロパティを使ってループしたらどうか、
と考えてやってみたのですが、それでもエラーになりました。
結局、やぼったい感じになりますが、参照する数式を一つずつ分解していく
↓こんなコードだと、なんとかできましたが・・。
Sub Test_NameVal()
Dim WB As Workbook
Dim NM As String
Dim i As Integer
Dim Ary As Variant, Ary2 As Variant
Set WB = Workbooks("Book2.xls")
NM = WB.Names("TEST").RefersTo
NM = Right(NM, Len(NM) - 1)
If InStr(1, NM, ",") > 0 Then
Ary = Split(NM, ",")
For i = LBound(Ary) To UBound(Ary)
Ary2 = Split(Ary(i), "!")
WB.Sheets(Ary2(0)).Range(Ary2(1)).Value = "ABC"
Next i
Erase Ary, Ary2
Else
Ary = Split(NM, "!")
WB.Sheets(Ary(0)).Range(Ary(1)).Value = "ABC"
Erase Ary
End If
WB.Activate: Set WB = Nothing
End Sub
|
|