0

次のループを実装しようとしていますが、Excel の範囲に名前を付けることができません。

Dim oXL As New Excel.Application      
Dim oWB13 As Excel.Workbook
oWB13 = oXL.Workbooks.Open("F:\mybook.xlsx")

With oWB13
For i = 1 To 2
  .Worksheets(i).Range("N102:XFD102").Name = "to_from"
    With oWB13.Worksheets(i)
       For j = 1 To 2
        .Range("to_from").Cells(102, 13 + j).Value = "K" & j
       Next
    End With
Next
End With

oXL.Visible = True 

期待される結果: oWB13 の各ワークシートのセル N102 および O103 は、それぞれ名前/値 K1 および K2 を持つ必要があります。

ここで何が問題なのですか?

VB.NET の理解: 中級者

ありがとう

4

1 に答える 1

0

あなたが何をしようとしているのかわからない: あなたのコードの結果は、セル Sheet1!AA203:AB203 と Sheet2!AA203:AB203 を K1 と K2 に設定し、Sheet2 を参照する 'to_from' の単一のグローバル定義名を持つことです。 !$N$102:$XFD$102

N102 と O103 の値を設定する場合、
.Range("to_from").Cells(102, 13 + j).Value = "K" & j は
.Range("to_from").Cells(j, j).Value = "K" & j
(.Cells 参照は範囲内にあります)

しかし、グローバルに定義された名前を使用して、このようにすぐに再定義することは、せいぜい混乱を招きます: 範囲アドレスを使用しないのはなぜですか?
.Range("N102:XFD102").Cells(j, j).Value = "K" & j

于 2013-05-20T19:04:26.250 に答える