我需要对长列的值进行求和,并将它们分成几组。我不想错过任何一行。所以我需要突出显示我已经在某些公式中使用的所有单元格(例如=D1+D2)。
当我双击公式时,使用的单元格会突出显示。我想要这种效果。我发现这个CTRL [技巧可以实现这一点,但它对我的装有 Excel 2010 的电脑没有效果。还有其他可能性吗?谢谢
例如,我有两列,第一列是数据,第二列是分组。A4 未使用,A1..A3 应突出显示为已使用。
**1** =A1+A2
**3** =A3
**2**
4
答案1
我不认为布局是你想要的,但这可能就足够了:你也许能够使用 Trace Dependents/Precedents
它位于公式的工具栏中,在公式审核下(并且在同一位置有删除箭头的选项)
但是,我不喜欢上面的代码。现在,这真的取决于你的需求,但我很快为你编写了这个 VBa
Sub Button5_Click()
'PLEASE EDIT THIS FIRST BIT.
Dim row As Integer
row = 1 ' THE STARTING ROW IN YOUR EXCEL SHEET
Dim numberOfRows As Integer
numberOfRows = 5 'THE TOTAL NUMBER OF ROWS YOUR WORKSHEET HAS
Dim columnWithFormula As String
columnWithFormula = "E" ' THE COLUMN WHERE THE FORMULAs ARE (I suspect you are using B if your example is accurate))
Dim colourIndex As Integer
colourIndex = 26 ' WHAT COLOUR TO HIGHLIGHT COLUMNS. GOOGLE VBa COLOR INDEX
'AND STOP EDITING :)
For row = 1 To numberOfRows
If range(columnWithFormula & row).Value <> "" Then
Dim result As String
result = range(columnWithFormula & row).Formula
result = Replace(result, "(", " ")
result = Replace(result, ")", " ")
result = Replace(result, "-", " ")
result = Replace(result, "+", " ")
result = Replace(result, "*", " ")
result = Replace(result, "/", " ")
result = Replace(result, "=", " ")
result = Replace(result, ",", " ")
Dim cells() As String
cells = Split(Trim(result), " ")
For j = 0 To UBound(cells)
range(cells(j)).Interior.ColorIndex = colourIndex
Next j
End If
Next row
End Sub
以上产生以下内容(我启用了公式,以便您可以看到哪些单元格中有公式)
宏并不完美,但我真的不知道您的需求,所以如果您(按照您帖子中的示例)有简单的公式,它应该可以正常工作。
请注意,它将改变单元格背景颜色,撤消将不起作用!因此,如果您已经在使用突出显示,则需要更新代码!这也意味着在运行此宏后,您需要手动选择工作表并将背景颜色恢复为您选择的颜色...
为了扩展它,您可以更新 for 循环并将其替换为
For Each Cell in ActiveSheet.UsedRange.Cells
'logic
Next
检查工作表中的每个单元格,看是否存在公式......
答案2
转到空白单元格 - 在此单元格中输入 =V40=1:1048576,其中第一个引用(在本例中为 v40)指的是另一个空白单元格。第二部分突出显示整个工作表。
按 Enter 键,然后单击单元格,单击查看公式,然后双击跟踪先例。这将绘制指向另一个单元格中引用的每个单元格的蓝色链接。查找没有线的单元格 - 它们已被遗漏。
灰
答案3
我准备了以下宏,将选定的单元格分类为“输入”、“计算”和“输出”,代码将分配名为“输入”、“计算”和“输出”的样式。这对于了解其他人准备的表格或调试表格很有用。
将以下代码放在“工作表代码”中,而不是模块中。
'Macro to classify the cells from selected range into "input", "calculation" and "output"
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
With ActiveSheet.Cells
.Interior.ColorIndex = xlColorIndexNone
.Font.ColorIndex = xlAutomatic
.Font.Bold = False
End With
Dim rCell As Range
Application.EnableEvents = False
For Each rCell In Target.Cells
If IsEmpty(rCell.Value) = True Then GoTo AllDone:
If Not rCell.HasFormula Then
If HasDependents(rCell) Then
rCell.Style = "Input"
GoTo AllDone:
Else
GoTo AllDone:
End If
Else
If HasDependents(rCell) Then
rCell.Style = "Calculation"
GoTo AllDone:
Else
rCell.Style = "Output"
GoTo AllDone:
End If
End If
AllDone:
Err.Clear
Next rCell
Application.EnableEvents = True
End Sub
Public Function HasDependents(ByVal Target As Excel.Range) As Boolean
On Error Resume Next
HasDependents = Target.Dependents.Count
End Function