连续交替固定列标题和行值

我有一个固定的列标题和可变的行数据的电子表格,我想创build一个简单的工具(让目标为1点击),将用户input的列值和行数据连接到属性string('='在每个标题之后和“;”之后)。

之前看起来像这样:

之前

看起来像这样:

后

输出是在一个单独的工作表中,如果可能的话保存为一个值。 列的数量可能会有所不同,所以使用定义表的解决scheme将是有用的。

使用的公式:

=CONCATENATE(before!$A$1,"=",before!$A2,";",before!$B$1,"=",before!$B2,";",before!$C$1,"=",before!$C2,";")

任何援助将不胜感激。

以下UDF将做到这一点:

 Function unionText(ttl As Range, rng As Range) As String Dim i As Long If ttl.Cells.Count <> rng.Cells.Count Or _ ttl.Rows.Count <> 1 Or rng.Rows.Count <> 1 Then unionText = CVErr(xlErrValue) Exit Function End If For i = 1 To ttl.Cells.Count unionText = unionText & ttl(i) & "=" & rng(i) & ";" Next i End Function 

它在这张表中被称为:

 =unionText(before!$A$1:$C$1,before!A2:C2) 

然后复制下来

在这里输入图像说明

我的显然是在同一张纸上,但上面的公式使用您的工作表参考。

您可以暂时使用此macros代码,并假定只有一行值:

 Sub Macro1() ' Macro1 Macro Range("A1").Select Dim r As Byte Dim c as Byte Dim stringunion As String r = 1 c = 1 Do While Cells(r, c) <> "" stringunion = stringunion & Cells(r, c).Value & "=" & Cells(r + 1, c) & ";" c = c + 1 Loop MsgBox stringunion End Sub