Excel宏从一个表/数组到另一个表/数组拾取值

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

我在Excel表格中有以下“表格”。我想做以下更改:

每次出现“x”时,我想在另一张表上报告第一行的对应值和第一列的对应值:

“原始表格”

“转换表”:

您能告诉我什么是Excel宏来执行此操作吗

提前谢谢。

这假设工作表(2)存在(即不检查)。它将使用您在示例中给出的行标题和列标题填充表(2):

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)
  )
 )