繁体   English   中英

Excel宏-无法调用单元格值

[英]Excel macro - unable to call cell value

在我的工作表中,某些单元格值基于其他单元格

Info worksheet
A1: 5
B1: =A1
Design worksheet
A1:

有没有办法复制和读取B1中的值? 我试图在for循环中使用该值,但是没有运气。

Sheets("Info").Select
For i = 1 to 5
    If Range("B" & i).Value <> 0 Then
        Range("B" & i).Copy Destination:=Sheets("Design").Range("A" & x)
        'Sheets("Design").Range("A" & x).Value = Sheets("Offerte").Range("B" & i).Value
        x = x + 1
    End If
Next i

您的示例似乎与代码不太匹配。 线

If Range("B" & i).Value = 1 Then

表示在您的示例中不会复制任何内容。 它正在寻找其中包含1的单元格。 为什么根本需要该If语句?

编辑我猜你只是在检查要复制的单元格中是否有东西? 我可能会这样:

If Trim(Range("B" & i).Value) <> "" Then

另外-您是否错过了设置x=1

有多种方法可以做到这一点。 其中之一是使用“偏移”,这是一个真正值得理解的功能。 它基本上指向原始单元格中的行/列数。

Sub test()

    Dim oCell As Excel.Range
    Dim i As Integer
    Dim x As Integer

    Set oCell = Sheets("Info").Range("B1")

    x = 1

    For i = 1 To 5
        If oCell.Offset(i, 0).Value = 1 Then
            oCell.Offset(i, 0).Copy Destination:=Sheets("Design").Range("A" & x)
            x = x + 1
        End If
    Next i

End Sub 

此外,您可以断言该值,而不是使用copy属性。 请注意,除非x是大于0的整数,否则它将不起作用。

Sub test2()

Sheets(3).Select
x = 1
For i = 1 To 5
    If Range("B" & i).Value = 1 Then
        Sheets(4).Range("A" & x).Value = Range("B" & i).Value

        'Sheets("Design").Range("A" & x).Value = Sheets("Offerte").Range("B" & i).Value
        x = x + 1
    End If
Next i

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM