Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换if+;或+;vba的间接函数_Vba_Excel_If Statement_Excel Indirect - Fatal编程技术网

转换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