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