在研究如何根据标准将单元格添加到定义的范围时,我在这里得到了一个代码。这是代码:
Dim rng1 As Range
Dim rng2 As Range
Dim c As Range
Set rng1 = Range("N1:N10")
For Each c In rng1
' Add cells to rng2 if it is highlighted with a certain color
If c.Interior.ColorIndex = 43
If Not rng2 Is Nothing Then
Set rng2 = Union(rng2, c)
Else
' the first valid cell becomes rng2
Set rng2 = c
End If
End If
Next
我打算对检索到的单元格进行处理的是获取值并将其添加。我最初的计划是使用公式SUM(),其中总和的范围是 应该是rng2。为了将其放入此公式中,我必须从检索到的范围中提取单元格。因此,经过研究,我偶然发现了以下代码:
Function RangeToString(ByVal myRange As Range) As String
RangeToString = ""
If Not myRange Is Nothing Then
Dim myCell As Range
For Each myCell In myRange
RangeToString = RangeToString & ";" & myCell.Value
Next myCell
'Remove extra comma
RangeToString = Right(RangeToString, Len(RangeToString) - 1)
End If
End Function
使用以下功能和代码,我进行了一次测试,以检查它是否拾取了任何突出显示的单元格。可悲的是,它没有在我编码的测试单元上发布任何值。这是我做的示例代码:
Dim totalsum As String
totalsum = RangeToString(rng2)
ThisWorkbook.Sheets("format").Range("N" & counter).Value = totalsum
提前谢谢!很抱歉,这个冗长的问题。
答案 0 :(得分:0)
如果您只需要rng2
的总和,则可以使用Worksheetfunction.Sum()
并将rng2
用作参数。
Debug.print WorksheetFunction.Sum(rng2)
无需解析该范围内要在工作表中使用的每个单元格的单个值。