【发布时间】:2015-12-07 01:59:35
【问题描述】:
我尝试并未能找到函数的语法来遍历工作表中的每个单元格并将其地址与正则表达式匹配,并根据正匹配解锁单元格,但似乎无法转换 IXLCell 地址到字符串? 这是我一直在使用的函数:
Private Function NeedsToBeUnlocked(cell As IXLCell) As Boolean
Dim returnValue = False
Dim address As String = CType(cell.Address, String)
Dim reg As Regex = New Regex("^B5|[CDEFGH][56]|H9|[CDEFGH]12|[CDEFGH]4[5-9]|[CDEFGH]5[012]|[GH]6[6-9]|[GH]78[0-7]|[GH]88|[GH]9[0,6-9]|H1[47]|H2[1278]$|H3[01347]|[BCDFGH]16[246]|[CDEFGH]15[789]|[CDEFGH]160|E16[24]|[GH]10[0-9]|[GH]11[012]|G129|[GH]13[01]|H11[789]|H12[012,6-9]|H13[289]|H14[0-5,78]$")
Dim match As Match = reg.Match(address)
If match.Success Then
returnValue = True
End If
Return returnValue
End Function
这就是 For Each 循环。 显然语法不正确,但你明白我的意思。
For Each c As IXLCell In xlWS.Range("A1", "I177").Cells
If NeedsToBeUnlocked(c.Address) Then
c.Style.Protection.SetLocked(False)
End If
Next
这是我的天真尝试,不只是使用这样的一系列直接陈述。一定有更好的办法吗?
xlWS.Range("B5", "H5").Style.Protection.SetLocked(False)
xlWS.Range("C6", "H6").Style.Protection.SetLocked(False)
xlWS.Cell("H9").Style.Protection.SetLocked(False)
【问题讨论】:
标签: vb.net .net-4.0 visual-studio-2015 openxml closedxml