我有一个带有固定列标题和可变行数据的电子表格,我想创建一个简单的工具(让我们瞄准1次点击),它将用户输入的列值和行数据连接到属性字符串中(每个标题后面的'='和每个值后的';'。
之前看起来像这样:
看起来像这样:
单独的工作表中需要输出,如果可能,则保存为值。 列数可能会有所不同,因此使用已定义表的解决方案将非常有用。
使用的公式:
=CONCATENATE(before!$A$1,"=",before!$A2,";",before!$B$1,"=",before!$B2,";",before!$C$1,"=",before!$C2,";")
非常感谢任何协助。
答案 0 :(得分:2)
以下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)
然后复制
Mine显然在同一张纸上,但上面的公式使用了您的纸张参考。
答案 1 :(得分:0)
您可以临时使用此宏代码,并假设只有一行值:
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