如何在Excel VBA中的userform的一个文本框中显示多个单元格?

如何在Excel VBA中的userform的一个文本框中显示多个单元格?,excel,vba,macos,Excel,Vba,Macos,当我单击按钮(CommandButton1\u click)时,我正在尝试用多单元格数据EXCEL填充UserForm(txtboxTransactionHistory)中的文本框 我尝试将行复制到employed单元格,然后希望粘贴到UserForm TextBox目录 我不知道为什么它显示为真而不是我复制的行,而且我如何实现我想要看到的 环境:Excel for 2016和Excel for Mac 照片1是工作表的数据(交易历史记录) photo2就是我想要实现的样子 照片3是它现在的工作

当我单击按钮(CommandButton1\u click)时,我正在尝试用多单元格数据EXCEL填充UserForm(txtboxTransactionHistory)中的文本框

我尝试将行复制到employed单元格,然后希望粘贴到UserForm TextBox目录

我不知道为什么它显示为真而不是我复制的行,而且我如何实现我想要看到的

环境:Excel for 2016和Excel for Mac

照片1是工作表的数据(交易历史记录)

photo2就是我想要实现的样子

照片3是它现在的工作原理

公共子命令按钮1\u单击()
我和我一样长,我和我一样长
设置ws=Sheets(“交易历史记录”)
设置ws2=工作表(“测试”)
i=2
Do While ws.Cells(i,1).Value“”
ws.Rows(i).复制
i=i+1
环
Me.txtboxTransactionHistory=行(i).PasteSpecial(xlPasteAll)

End Sub
您需要执行以下操作:

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Dim i As Long, j As Long, ws As Worksheet, ws2 As Worksheet, Info As String
Set ws = Sheets("TransactionHistory")
Set ws2 = Sheets("Test")
i = 2
Do While ws.Cells(i, 1).Value <> ""

    With ws
        'Info = Format(.Range("A" & i), "dd.mm.yyyy") & " " & .Range("B" & i) & " " & .Range("C" & i) & " Quantity: " & .Range("D" & i) & " Rate: " & .Range("E" & i)
        'Info = Join(Application.Transpose(Application.Transpose(.Range("A" & i, "E" & i).Value)), " ") 'Use this line if you just want the exact cells as they look in the sheet
        Info = tostring(.Range("A" & i), .Range("B" & i), .Range("C" & i), .Range("D" & i), .Range("E" & i))
    End With

    Me.txtboxTransactionHistory.Text = Me.txtboxTransactionHistory.Text & Info & vbCr
    i = i + 1
Loop

Application.ScreenUpdating = True

End Sub

然后您可以使用我上面更新的代码,包括将
vbNewLine
更改为
vbCr
,以适应Mac。

非常感谢。我现在只能触摸Mac,Mac默认设置下“&vbNewLine”不起作用?(我的意思是它不能开始新的线路)。我还尝试了“&vbCrLf”,但无法开始新的行,所以这可能是Mac的默认设置。此外,是否可以使用单击操作代码下面的类模块“tostring”方法?因为这就是这个练习的暗示,然而,我似乎尝试了另一种方式。再次道歉,我想我在我的帖子的“类模块”下也做了类似的事情。我的问题是如何在单击操作中调用函数“tostring”?它与任何其他函数一样。你可以从我的回答中看出这一点。我使用了你制作的函数,并对其进行了编辑,使其能够实际工作。否则,如何使用在函数中定义的变量?你问的问题我有什么遗漏吗?嗯,我有“子函数或函数未定义”,我需要更多的时间来理解你把函数放在哪里了?它需要在一个模块中。
Public Function tostring(TransactionDate As Date, TransactionType As String, CryptCurrency As String, Quantity As Double, ExchangeRate As Double) As String
 tostring = TransactionDate & " " & TransactionType & " " & CryptCurrency & " " & transcriptionType & " " & " quantity: " & Quantity & " rate: " & ExchangeRate
 End Function