0

以下は、データを取得してセルに割り当てようとしている私の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")

これを行う方法?このための関数を提案してください。前もって感謝します。

4

1 に答える 1

1

あなたが以前にほぼ同様の質問をしていたことに気付きました。ここで、名前に が含まれているかどうかを具体的に尋ねている唯一の違いqaは、その回答で指定された詳細を使用して、今までに修正できたはずです。とにかく、ここではLikeon 演算子を使用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
于 2013-01-21T09:14:55.183 に答える