VBA:锁定并更改excel单元格的颜色

时间:2013-01-21 07:13:54

标签: vba excel-vba word-vba excel

以下是我的vba代码,我试图获取数据并将其分配给一个单元格。现在,我需要做的就是在填充后锁定这些单元格。有很多细胞我必须这样做,我得到的只是'qa'部分在我必须填写的所有细胞名称中是相同的。所以我必须检查'qa'是否是细胞名称的一部分,如果是的话然后锁定完整的单元格并更改颜色。

ActiveWorkbook.Names("Book.aa.a.qa.qq.le.").RefersToRange = Doc.getAttribute("le")
ActiveWorkbook.Names("Book.bb.a.qa.qq.lf.").RefersToRange = Doc.getAttribute("lf")
ActiveWorkbook.Names("Book.cc.a.qa.qq.lg.").RefersToRange = Doc.getAttribute("lg")
ActiveWorkbook.Names("Book.dd.a.qa.qq.ll.").RefersToRange = Doc.getAttribute("ll")

怎么做? 请为此建议功能。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我注意到你之前提出了几乎类似的问题。这里唯一不同的是,您明​​确询问名称是否包含qa,您现在可以使用该答案中的给定详细信息来解决此问题。无论如何,我在Like使用IF运算符来检查相同的代码,

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)
            '--change here
            If strName Like "*qa*" Then
              .Interior.Color = vbRed
              .Locked = True
            End If
        End With
    End If
Next
Sheet1.Protect