我想要编写的VBA代码遇到麻烦。我在这里和其他论坛中查看了不同的问题,但我找不到能够帮助我的需求的东西。
我的问题是一个名为" TableLaw"的表,有大约43列和超过10000行。
实际上,我的需求可以分为两部分:
我对保存部分的阻塞没有任何问题,但是我甚至形成了一个严重的麻烦甚至形成一个For Each或者在列[单元格中]迭代的东西[Comment]检查单元格是否为空或者是否有只有一个公式,并突出显示那些空的单元格。
使用像[Comments]这样的结构名称非常重要,因为用户可能会向表中添加新列。
谢谢,抱歉这个麻烦。我对VBA比较陌生,而且我之前在编程方面的知识很少。
我看过许多复杂的代码片段,我无法理解,但我明白这一点,我相信你们所有人都会嘲笑我的无能,怀疑我是否真的做了些什么:
Sub TableTest()
Dim tbl As ListObject
Dim tRows As Long
Dim tCols As Long
Dim lo As ListObject
Dim ws As Worksheet
Dim lr As ListRow
Dim lc As ListColumn
'I used this to get the column number and then use it in a For cycle to go through all cells in the column
col = WorksheetFunction.Match("COMMENTS", Sheets("Orders").Range("5:5"), 0)
Set tbl = ActiveSheet.ListObjects("TableLaw")
With tbl.DataBodyRange
tRows = .Rows.Count
tCols = .Columns.Count
End With
Set ws = ThisWorkbook.Worksheets("Orders")
Set lo = ws.ListObjects("TableLaw")
For Each lr In lo.ListRows
Cells(lr, col).Interior.ColorIndex = 37
Next lr
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'I added the range like this because I do not know how to add the column name.
If WorksheetFunction.CountA(Worksheets("Orders").Range("AM6:AM10500")) <> "" Then
MsgBox "Workbook will not be saved unless all comments are added"
Cancel = True
End If
End Sub
答案 0 :(得分:0)
您可以使用.Value函数
进行检查即。
If (Range("A1").Value = "") Then
''' PROCESS CODE
End If