单元格值未显示在VBA中

时间:2013-08-09 08:35:43

标签: excel 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中的单元格具有值。

请帮帮我。

3 个答案:

答案 0 :(得分:0)

尝试

Do While(Not IsEmpty(Sheet1.Cells(i, 16))

或者更确切地说

Do Until IsEmpty(Sheet1.Cells(i, 16))

答案 1 :(得分:0)

我相信你知道,但请记住IsNull和IsEmpty Excel帮助之间的以下区别提醒我们:

IsNull - &gt;返回一个布尔值,指示表达式是否不包含有效数据(Null)。 IsEmpty - &gt;返回一个布尔值,指示变量是否已初始化。

好的,这就是说,我已经修复了你无法读取数值的问题。我将您正在查看的范围放入阵列变体中。现在循环中的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

你们有什么想法?

答案 2 :(得分:0)

我认为这就是你要做的事情:

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