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.”的形式吗?

这可以满足您对其中一个单元格的要求(您需要在解锁/修改单元格之前取消保护工作表,然后在完成后再次保护它):

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 回答