Excel宏从一个表/数组到另一个表/数组拾取值
我在Excel表格中有以下“表格”。我想做以下更改: 每次出现“x”时,我想在另一张表上报告第一行的对应值和第一列的对应值: “原始表格” “转换表”: 您能告诉我什么是Excel宏来执行此操作吗 提前谢谢。这假设工作表(2)存在(即不检查)。它将使用您在示例中给出的行标题和列标题填充表(2):Excel宏从一个表/数组到另一个表/数组拾取值,excel,copy,row,element,vba,Excel,Copy,Row,Element,Vba,我在Excel表格中有以下“表格”。我想做以下更改: 每次出现“x”时,我想在另一张表上报告第一行的对应值和第一列的对应值: “原始表格” “转换表”: 您能告诉我什么是Excel宏来执行此操作吗 提前谢谢。这假设工作表(2)存在(即不检查)。它将使用您在示例中给出的行标题和列标题填充表(2): Sub ReportOnAllXs() Dim r As Integer, c As Integer, r2 As Integer r2 = 1 With Sheets(1) For
Sub ReportOnAllXs()
Dim r As Integer, c As Integer, r2 As Integer
r2 = 1
With Sheets(1)
For r = 3 To .Cells(.Rows.Count, "A").End(xlUp).row
For c = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
If .Cells(r, c).Value = "X" Then
Sheets(2).Cells(r2, 1).Value = .Cells(r, 1).Value
Sheets(2).Cells(r2, 2).Value = .Cells(1, c).Value
r2 = r2 + 1
End If
Next
Next
End With
End Sub
我还假设您希望得到的行和列值位于工作表(2)的单独单元格中 我知道这是Excel VBA问题,无法使用内置公式完成。在GoogleSheets中,您只能通过内置函数来实现这一点。当“a1”在
B1
上且“u1”在A3
上时,您只需使用一个公式即可获得表格。样本表是
“将执行此操作的Excel宏”将是您编写的执行此操作的宏。到目前为止你做了什么,遇到了什么问题?非常感谢!如果我需要谷歌表单,我会知道如何使用它。
u1 a1
u1 a2
u1 a3
u2 a2
u2 a3
u5 a1
u6 a3
Sub ReportOnAllXs()
Dim r As Integer, c As Integer, r2 As Integer
r2 = 1
With Sheets(1)
For r = 3 To .Cells(.Rows.Count, "A").End(xlUp).row
For c = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
If .Cells(r, c).Value = "X" Then
Sheets(2).Cells(r2, 1).Value = .Cells(r, 1).Value
Sheets(2).Cells(r2, 2).Value = .Cells(1, c).Value
r2 = r2 + 1
End If
Next
Next
End With
End Sub
=transpose(
split(
concatenate(
arrayformula(
if(B3:G8="x", "u"&(row(B3:G8)-row($A$3)+1)&" a"&(column(B3:G8)-column($B$1)+1)&char(10), "")
)
), char(10)
)
)