如何解决当单元格值= 0 VBA时将单元格地址添加到数组
我有一系列for循环结束的单元格。如果其中有一个单元格为0,请更改为某个数字并将单元格地址保存到数组中?
我不确定有多少个单元格以0开头。
下面是我希望它如何工作的伪代码
variable:10
编辑: 谢谢大家的帮助。现在我可以引用将地址添加到数组,是否有必要根据需要返回该地址? 我希望能够引用我最后修改的单元格,就像在三个块引号中看到的一样:
For i = 1 to 9
For j = 1 to 9
if cell.value = 0 then
cell.value = x
'''Add cell.address to array'''
End if
next j
next i
如果我需要打开另一个问题,可以。
解决方法
您可以执行以下操作:
Dim ranges(81) ' Enough to hold 9x9 ranges
Dim i As Integer
Dim j As Integer
Dim k As Integer
k = 1
For i = 1 to 9
For j = 1 to 9
If cell.value = 0 then
cell.value = x
Set ranges(k) = cell
k = k + 1
ElseIf k>1 Then
Set ranges(k-1).Value = x+1
End if
next j
next i
,
请尝试使用此功能。它同时返回计数和地址字符串。它采用的参数之一是找到的零将被替换的值。
Private Sub Test_CountSeroes()
Dim Addresses() As String
MsgBox CountZeroes("Replaced",Addresses)
Debug.Print Join(Addresses,",")
End Sub
Function CountZeroes(ByVal x As Variant,_
Fun() As String) As Long
Const CountRange As String = "B2:H13" ' change to suit
Dim Rng As Range ' = CountRange
Dim Cell As Range ' loop counter: cells
Dim i As Long ' index of Fun()
Set Rng = Range(CountRange)
ReDim Fun(1 To Rng.Count)
For Each Cell In Rng
With Cell
If .Value = 0 Then
.Value = x
i = i + 1
Fun(i) = .Address(0,0)
End If
End With
Next Cell
If i Then ReDim Preserve Fun(1 To i)
CountZeroes = i
End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。