单元值在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