VBA:锁定并填充excel中所选单元格的颜色

时间:2013-01-18 08:21:42

标签: excel-vba vba excel

以下是我的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")

如何做到这一点?我必须对更多的细胞这样做。 你有什么建议? 提前谢谢。

1 个答案:

答案 0 :(得分: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