单元值在VBA中不显示
我正在尝试读取与VBA的Excel中的单元格值。 当我尝试阅读它时,我总是得到空。
这是代码片段
Private Sub CommandButton1_Click() Dim i As Long Dim j As Long i = 3 j = 4 Do While (Len(Trim(Sheet1.Cells(i, 16))) <> 0) Sheet2.Cells(4, j) = Sheet1.Cells(i, 16) j = j + 1 i = i + 1 Loop End Sub
但是dowhile总是会得到NULL并从循环中出来。 sheet1中的单元格中有值。
请帮我在这里。
尝试
Do While(Not IsEmpty(Sheet1.Cells(i, 16))
或者也许宁可
Do Until IsEmpty(Sheet1.Cells(i, 16))
我相信你是知道的,但请记住IsNull和IsEmpty之间的以下区别Excel帮助提醒我们:
IsNull – >返回一个布尔值,指示expression式是否包含无效数据(Null)。 IsEmpty – >返回一个布尔值,指示variables是否已被初始化。
好吧,这就是说,我已经解决了你无法读取值的问题。 我把你正在查看的范围放入一个数组variables。 现在循环中的msgbox会为你返回一个值。
Sub x() Dim Arr As Variant Arr = Worksheets("Sheet1").Range(Cells(1, 16), Cells(1000, 16)).Value 'You can modify the 1000 by finding the last line, eg - Range.End(xldown).Row Dim i i = 1 Dim CurrentPos CurrentPos = Arr(i, 1) Do Until IsEmpty(Arr(i, 1)) Or IsNull(Arr(i, 1)) MsgBox CurrentPos Loop End Sub
你们有什么感想?
我认为这是你想要做的:
Private Sub CommandButton1_Click() Sheet1.Range("P3", Sheet1.Cells(Rows.Count, "P").End(xlUp)).Copy Sheet2.Range("D4").PasteSpecial xlPasteValues, Transpose:=True Application.CutCopyMode = False End Sub