首页 > 解决方案 > 检查单元格的值是否为特定字符串

问题描述

这个快把我逼疯了。

我想检查一个单元格的值是否为“是”,但不管我尝试做什么,VBA 一直说类型不匹配。

真的可以在这里使用一些帮助。

这是我的代码:

Dim rowcntr As Variant
Dim rowcntr2 As Variant
Dim i As Integer
For i = 1 To rowcntr
    rowcntr2 = WorksheetFunction.CountA(Sheet3.Range("A:A"))
    If sheet10.Range("R1").Offset(i, 14).Find("Yes", sheet10.Range("R1"), xlValues, xlWhole, xlByColumns, xlNext, True) Is Nothing Then
        i = i + 1
    Else
        Sheet3.Range("A1").Offset(rowcntr2, 0) = sheet10.Range("R1").Offset(i, 0)
        Sheet3.Range("A1").Offset(rowcntr2, 1) = sheet10.Range("R1").Offset(i, 1)
        Sheet3.Range("A1").Offset(rowcntr2, 2) = sheet10.Range("R1").Offset(i, 2)
        Sheet3.Range("A1").Offset(rowcntr2, 3) = sheet10.Range("R1").Offset(i, 3)
        Sheet3.Range("A1").Offset(rowcntr2, 4) = sheet10.Range("R1").Offset(i, 5)
    End If
Next i

标签: excelvba

解决方案


我自己整理的...

Dim rowcntr As Variant

Dim rowcntr2 As Variant

Dim i As Integer

Dim j As Variant

rowcntr = WorksheetFunction.CountIf(sheet10.Range("AF:AF"), "<>" & "")

For i = 1 To rowcntr

    rowcntr2 = WorksheetFunction.CountA(Sheet3.Range("A:A"))

    j = CStr(sheet10.Range("R1").Offset(i, 14))

    If j = "Yes" Then

        Sheet3.Range("A1").Offset(rowcntr2, 0) = sheet10.Range("R1").Offset(i, 0)

        Sheet3.Range("A1").Offset(rowcntr2, 1) = sheet10.Range("R1").Offset(i, 1)

        Sheet3.Range("A1").Offset(rowcntr2, 2) = sheet10.Range("R1").Offset(i, 2)

        Sheet3.Range("A1").Offset(rowcntr2, 3) = sheet10.Range("R1").Offset(i, 3)

        Sheet3.Range("A1").Offset(rowcntr2, 4) = sheet10.Range("R1").Offset(i, 5)

    Else

        i = i + 1

    End If

Next i

推荐阅读