转换if+;或+;vba的间接函数
您好,我正在尝试转换此函数:转换if+;或+;vba的间接函数,vba,excel,if-statement,excel-indirect,Vba,Excel,If Statement,Excel Indirect,您好,我正在尝试转换此函数: =IF(OR(INDIRECT("'sheet1'!C8")="Nouveau locataire",INDIRECT("'sheet1'!C8")="Décès"),CELL("contents",INDIRECT("'sheet1'!B8")),"") 类似于: Sub if_orfuction() Dim i As Integer j = 2 For i = 2 To Sheets("Sheet1").Range("A1").SpecialCel
=IF(OR(INDIRECT("'sheet1'!C8")="Nouveau locataire",INDIRECT("'sheet1'!C8")="Décès"),CELL("contents",INDIRECT("'sheet1'!B8")),"")
类似于:
Sub if_orfuction()
Dim i As Integer
j = 2
For i = 2 To Sheets("Sheet1").Range("A1").SpecialCells(xlLastCell).Row
If Sheets("Sheet1").Cells(i, 2).Value = "Nouveau Locataire" Or Sheets("Sheet1").Cells(i, 2).Value = "Décès" Then
Sheets("Sheet3").Cells(j, 1) = Sheets("Sheet1").Cells(i, 1)
j = j + 1
End If
Next i
End Sub
如何在功能中实现间接功能?试试
Sub if_orfuction()
Dim i As long, j as long
j = 2
with workSheets("Sheet1")
For i = 2 To .cells.SpecialCells(xlLastCell).Row
If .range(.range("B" & i).Value).Value = "Nouveau Locataire" Or _
.range(.range("B" & i).Value).Value = "Décès" Then
workSheets("Sheet3").Cells(j, "A") = .Cells(i, "A").Value
j = j + 1
End If
Next i
end with
End Sub
这是1'吗!C8或1’!B8包含工作表和单元格引用,或者可以假设单元格地址在表1上?单元格地址在表1上。我只需要它动态地引用单元格,所以如果我删除Sheet1中的行,代码仍然引用同一行中的单元格。
Sheets(“Sheet1”).Cells(8,3)
不为您这样做吗?是否更容易“筛选”工作表1上的范围->复制它->将值粘贴到工作表3???这会给我.range行的运行时错误1004