2017-11-20 12 views
0

私は、これらの5つのセルを一緒に比較したいと言います( "行"は整数です)。それらのすべてがこれらの正確な単語 "Not Applicable"を持っている場合は、出力のセルも "Not Applicable"になります。私は.Textを.Valueに置き換えようとしましたが、どちらも動作しません。これは、私を許してください、いくつかの愚かな間違いがある場合はファイル名を指定して実行時エラー「13」vbaを使って複数のセルのテキストを比較する

Private Sub CommandButton1_Click() 
Dim DocNo As Integer 
Dim line As Integer 

DocNo = (InputBox("Please input document number of record you would like to view")) 
line = 1 

'Checks the first cell of the results sheet until the number in first cell = the DocNo 
'if "DocNo" = the number in the cell, Line is set to its respective y coordinate 

Do 
    line = line + 1 
Loop While (DocNo <> Worksheets("Results").Cells(line, 1)) 
If (Worksheets("Results").Cells(line, 5).Text) And 
    (Worksheets("Results").Cells(line, 57).Text) And 
    (Worksheets("Results").Cells(line, 59).Text) And 
    (Worksheets("Results").Cells(line, 32).Text) And 
    (Worksheets("Results").Cells(line, 40).Text) = "Not Applicable" Then 
    Worksheets("Output").Cells(26, 3) = "Not Applicable" 
End If 

End Sub 

が常にあります、私はほんの数日

+0

説明されているエラーは、アルゴリズムそのものではなく、(少数の)タイプミスによるものです。 @ Ledavidiado:これにもっと苦労したら、新しい質問をするか、この問題を正確にどこに反映させるかを自由に編集してください。 –

答えて

0

あなたは、残念ながら、さまざまな方法でそれを記述する必要があります。

言って、あなたは簡単にするため5個のセル、A1、B1、C1、D1とE1のテキストを持っている、あなたは

IF Range("A1").Value = "Not Applicable" And Range("B1").Value = "Not Applicable" ... 

を行うことができますどちらか私が正しくリコール場合は、Excelは正確にやってネイティブワークシート関数を持っています同じもの - 正確(範囲、テキスト)

+0

ありがとう、はるかに面倒ですが、それは動作します – Ledavidiado

0

少しフォーマットは長い道のりを行くためにVBAを使用し始めました。以下に示すように、適切なコードインデントを使用してください。

はここにあなたのコードを持つ2つの主な問題です:

  • あなたは行コメントの一部ではありませんでした「DocNo」を持っていた、そのための有効なコードではありませんでした。
  • IfブロックにEnd Ifをつぶしていました。

このコードは、これらの問題を修正:

Private Sub CommandButton1_Click() 
    Dim DocNo As Integer, line As Integer 

    DocNo = InputBox("Please input document number of record you would like to view") 

    line = 1 

    ' Checks the first cell of the results sheet until the number in first cell = the DocNo 
    ' if "DocNo" = the number in the cell, Line is set to its respective y coordinate 
    Do 
     line = line + 1 
    Loop While (DocNo <> Worksheets("Results").Cells(line, 1)) 

    If (Worksheets("Results").Cells(line, 5).Text) And _ 
     (Worksheets("Results").Cells(line, 57).Text) And _ 
     (Worksheets("Results").Cells(line, 59).Text) And _ 
     (Worksheets("Results").Cells(line, 32).Text) And _ 
     (Worksheets("Results").Cells(line, 40).Text) = "Not Applicable" Then 
     Worksheets("Output").Cells(26, 3) = "Not Applicable" 
    End If 
End Sub 
0

は、以下のことを試してみてください。

If ((Worksheets("Results").Cells(line, 5).Text) = "Not Applicable") And 
(Worksheets("Results").Cells(line, 57).Text) = "Not Applicable") And 
(Worksheets("Results").Cells(line, 59).Text) = "Not Applicable") And 
(Worksheets("Results").Cells(line, 32).Text) = "Not Applicable") And 
(Worksheets("Results").Cells(line, 40).Text) = "Not Applicable") Then 
    Worksheets("Output").Cells(26, 3) = "Not Applicable" 
End If 
関連する問題