excel vba将列A中的活动单元格中的所有数据输出到msgbox

我如何输出所有的活动单元格,例如列“A”到一个msgbox
示例文件

chicken stew fish pie apple cake 

msgbox会显示

 chicken fish apple 

这个代码的作品

 MsgBox Worksheets("Sheet1").Range("A2").Value & vbCrLf & Worksheets("Sheet1").Range("A3") 

但是这不

 MsgBox Worksheets("Sheet1").Range("A:A").Value 

非常感谢

如果列A是空的,我将如何得到这个不显示消息框

试试这个

 Sub test() Dim lastrow As Long, res As String With Worksheets("Sheet1") If WorksheetFunction.CountA(.Range("A:A")) = 0 Then MsgBox "Column A is empty" Exit Sub End If lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row res = Join(Application.Transpose(.Range("A2:A" & lastrow + 1).Value), vbCrLf) Do While InStr(1, res, vbCrLf & vbCrLf) ' remove extra vbCrLf (if there're empty rows) res = Replace(res, vbCrLf & vbCrLf, vbCrLf) Loop MsgBox Left(res, Len(res) - 1) End With End Sub 

考虑:

 Sub dural() For Each r In Intersect(Range("A:A"), ActiveSheet.UsedRange) If r.Value <> "" Then msg = msg & vbCrLf & r.Value End If Next r MsgBox msg End Sub 

编辑#1

该版本testing列A是否为空:

 Sub dural() If Application.WorksheetFunction.CountA(Range("A:A")) = 0 Then MsgBox "Column A is empty" Exit Sub End If For Each r In Intersect(Range("A:A"), ActiveSheet.UsedRange) If r.Value <> "" Then msg = msg & vbCrLf & r.Value End If Next r MsgBox msg End Sub