0

以下は私のvbaコードで、セルにデータを入力します。同じセルをロックして、それらに色を付けるだけです。

//VBA:-
    ActiveWorkbook.Names("book.a.").RefersToRange = doc.getAttribute("a")
    ActiveWorkbook.Names("book.b.").RefersToRange = doc.getAttribute("b")
    ActiveWorkbook.Names("book.c.").RefersToRange = doc.getAttribute("c")
    ActiveWorkbook.Names("book.d.").RefersToRange =doc.getAttribute("d")

これを行う方法私はこれをもっと多くの細胞にやらなければなりませんでした。何を指示してるんですか?前もって感謝します。

4

1 に答える 1

1

セルはいくつですか?それらは隣接していますか?その場合、名前付き範囲を参照するのではなく、範囲をループできます。そうでない場合は、何らかの方法で名前の配列を作成する必要があります。それらはすべて「book.a。」の形式ですか?

これにより、セルの1つに必要な処理が実行されます(セルのロックを解除/修正する前にワークシートの保護を解除し、完了したら再度保護する必要があります)。

Dim strName As String, objName As Name, strID As String

Sheet1.Unprotect
For Each objName In ActiveWorkbook.Names
    strName = objName.Name
    If InStr(1, strName, "book", vbTextCompare) > 0 Then
        strID = Mid(strName, InStr(1, strName, ".", vbTextCompare) + 1, 1)
        With ActiveWorkbook.Names(strName).RefersToRange
            .Value = doc.getAttribute(strID)
            .Interior.Color = vbRed
            .Locked = True
        End With
    End If
Next
Sheet1.Protect
于 2013-01-18T09:44:39.047 に答える