Arrays 搜索数组中的值并返回该行/列中的值
我在vba非常基础,所以不幸的是,对于如何进行这种类型的搜索和相关调用,我没有很多想法 我有一个如下的数组,数组中的每个单元格都有一个从0到100的数字 我想创建一个表,其中对于80以上数据集中的每个值,我都从单元格的列和行返回标题。因此,在第一次迭代时,该表将如下所示: 表格示例 a 80b c85f e 92g 阵列 abcdefghij a b c d e f g h 我 jArrays 搜索数组中的值并返回该行/列中的值,arrays,excel,vba,Arrays,Excel,Vba,我在vba非常基础,所以不幸的是,对于如何进行这种类型的搜索和相关调用,我没有很多想法 我有一个如下的数组,数组中的每个单元格都有一个从0到100的数字 我想创建一个表,其中对于80以上数据集中的每个值,我都从单元格的列和行返回标题。因此,在第一次迭代时,该表将如下所示: 表格示例 a 80b c85f e 92g 阵列 abcdefghij a b c d e f g h 我 j 我想我说得很具体,但我真的不知道从哪里开始。提前感谢您的帮助。类似的内容将帮助您开始: Sub Captur
我想我说得很具体,但我真的不知道从哪里开始。提前感谢您的帮助。类似的内容将帮助您开始:
Sub CaptureCellsAboveValue(val as double, srcRange as Range, destRange as Range)
Dim srcRrow as long, srcCol as Long, destRow as Long: destRow = 1
For srcRow = 2 to srcRange.Rows.Count
For srcCol = 2 to srcRange.Columns.Count
If srcRange.Cells(srcRow, srcCol).Value > val Then
destRange.Cells(destRow, 1).Value = _
srcRange.Cells(srcRow, 1).Value & " " & _
srcRange.Cells(srcRow, srcCol).Value & " " & _
srcRange.Cells(1, srcCol).Value
destRow = destRow + 1
End If
Next
Next
End Sub
您可以将其与以下参数一起使用:
- 值:在您的示例中为80
- srcRange:表格范围,包括标题行和标题列
- destRange:要输出这些结果的范围的顶部单元格
- 感谢上面的提示,很抱歉这是一个糟糕的问题格式
在一位朋友的帮助下,我终于想出了这个答案,这正是问题所需要的。我现在正在学习如何动态定义源范围
Sub maketable()
Dim rng As Range, i As Single, j As Single
Dim outrow As Single
Set rng = Sheets("Heatmap+").Range("F6:HR226")
outrow = 2
For i = 1 To 221
For j = 1 To 221
If rng(i, j).Value >= 80 Then
Sheets("Table").Cells(outrow, 1).Value = rng(i, j).Value
Sheets("Table").Cells(outrow, 2).Value = Sheets("Heatmap+").Cells(1, j + 1).Value
Sheets("Table").Cells(outrow, 3).Value = Sheets("Heatmap+").Cells(i + 1, 1).Value
outrow = outrow + 1
End If
Next j
Next i
希望这能帮助人们从大型阵列中寻找这种输出
--作为学习的一部分,我正在努力使前面的答案起作用,所以谢谢你 这对于SO的格式来说太宽泛了;“特定”的意思是——你需要研究从哪里开始,尝试一些事情,遇到其他人也可能遇到的特定问题,并询问这个特定问题。否则会是“我需要XYZ,我该怎么做?”,而且不会有它的一半有用。@Mat'smugh你完全正确,我感到有点抱歉,伙计。我一开始试图给出一个“开始提示”,但最终得到了一个完整的解决方案:D