[英]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.