0
我试图将数据矩阵转换为适合特定分析软件的新标准。VBA函数遍历单元格,用相对列标题值替换单元格
初始矩阵如下所示:
real char num 10 10 25 26 26 56
--------------------------------
state num 1 2 9 4 6 3
--------------------------------
name 1 0 0 1 1 0 1
name 2 1 0 0 0 0 0
name 3 0 1 1 0 0 1
name 4 0 1 0 0 1 0
name 5 1 0 0 0 0 0
name 6 0 0 1 0 1 0
我一直在努力实现这一目标:
real char num 10 10 25 26 26 56
--------------------------------
state num 1 2 9 4 6 3
--------------------------------
name 1 0 0 9 4 0 3
name 2 1 0 0 0 0 0
name 3 0 2 9 0 0 3
name 4 0 2 0 0 6 0
name 5 1 0 0 0 0 0
name 6 0 0 9 0 6 0
从本质上讲,我试图做的是:
1。每列,在每个单元格中查找非0的数字;
2.如果达到此条件,请将单元格值替换为相对“状态”标题。意思是,例如,如果A4 <> 0,则将其替换为A3值。
我使用的代码如下:
Sub Iterate_replace()
Sheets("matrix").Select
Dim r As Range, cell As Range, state As Range
Set r = Range("C3")
Set state = Range("C2")
For Each cell In r
If cell.Value <> "0" Then
cell.Value = state.Value
End If
Next
End Sub
它工作在规定的一个单列的范围很好,但我无法使其动态。我是否应该使用R1C1表示法来引用范围内的单元格?我能找到的所有相关内容都不会说明如何使这个迭代更加灵活。我应该使用嵌套循环吗?循环对我来说是非常困难的事情,但请耐心等待。
如果有人能指出我正确的方向,我将不胜感激。谢谢!
这太棒了。所以我需要的是嵌套循环和关于如何确定范围的一些知识。非常感谢你,我从你的片段中学到了很多东西(是的,你的假设是正确的)。 – arbolitoloco