vba - 如何根据来自另一个单元格范围的输入对二维单元格范围进行编号?
问题描述
我有一个由 1s 和 0s 组成的输入矩阵,我需要创建一个相同大小的新矩阵,其中与 0s 对应的所有单元格首先编号为 1 到 n,然后与其中有 1s 的单元格对应的单元格为在其中包含 0 的单元格之后编号。
任何人都可以提供任何帮助将不胜感激。
解决方案
您可以使用Worksheet.Function.CountIf
一次完成整个范围。
Cells.Clear
For i = 1 To 10
For j = 1 To 10
Cells(i, j) = Int(Rnd * 2)
Next j
Next i
no0 = WorksheetFunction.CountIf([a1:j10], 0)
c0 = 1
c1 = 1
For i = 1 To 10
For j = 1 To 10
If Cells(i, j) = 0 Then
Cells(i + 11, j) = c0
c0 = c0 + 1
Else
Cells(i + 11, j) = no0 + c1
c1 = c1 + 1
End If
Next j
Next i
也有空格:
Dim no0 As Integer, c0 As Integer, c1 As Integer, i As Integer, j As Integer
Dim arrin(), rng As Range, c As Range
Cells.Clear
Set rng = [E8:H13]
Randomize
For Each c In rng
c.Value = Int(Rnd * 3)
If c.Value = 2 Then c.Value = ""
Next c
arrin = rng
no0 = WorksheetFunction.CountIf(rng, 0)
c0 = 1
c1 = 1
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
If arrin(i, j) = "" Then GoTo exitJ
If arrin(i, j) = 0 Then
Cells(i + 7, j + 9) = c0
c0 = c0 + 1
Else
Cells(i + 7, j + 9) = no0 + c1
c1 = c1 + 1
End If
exitJ: Next j
Next i
推荐阅读
- flutter - `String x = expr` 和 `var x = expr as String` 有什么区别?
- python - 如果条件不满足,for循环退出
- moodle - Rate_course 插件“磁盘丢失”
- loopback4 - 如何在环回 4 的表中插入示例数据?
- javascript - 当应用程序托管在 GitHub Pages 上时,React 会更新状态,但不会在 localhost(或 CodeSandbox)上更新状态
- python - 基于列之间的部分字符串匹配合并 2 个数据帧
- python - Python:根据条件为多边形着色并为多边形提供恒定宽度
- ios - xcodebuild 使用嵌入式库创建 xcframework
- debugging - Ansible 调试循环输出为单个列表?
- python - Python:将特定内容从一个文件移动/复制到另一个文件