2017-08-07 15 views
-2

私のコードで91のエラーが発生しましたが、何も動作していないようです。VBA Excelで91 'エラーを表示する

次のコードは、LOW、MEDIUM、HIGHが別のテーブルに含まれていることを識別するためのものですが、問題は私のデータに時間が「LOW」が含まれていないということです。コードはMEDIUM値の検索を開始できますが、それを行う方法はわかりません。


Private Sub CommandButton1_Click() 

Dim DataCalc_LOW As Integer 
Dim DataCalc_MEDIUM As Integer 
Dim DataCalc_HIGH As Integer 

DataToCalc_LOW = Worksheets("Random Generator").Range("AL16").Value 
DataToCalc_MEDIUM = Worksheets("Random Generator").Range("AL17").Value 
DataToCalc_HIGH = Worksheets("Random Generator").Range("AL18").Value 

Dim x As Integer 
Dim y As Integer 

Range("I14").Select 
Range(Selection, Selection.End(xlDown)).Select 

'x = 0 

Do 
x = x + 1 
Selection.Find(What:="LOW", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ 
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False,     
SearchFormat:=False).Activate 
With ActiveCell 
.Interior.ColorIndex = 44 
End With 
ActiveCell.Select 
Selection.Offset(0, 0).Select 
Range(Selection, Selection.End(xlDown)).Select 

Loop Until x = DataToCalc_LOW 

Range("I14").Select 
Range(Selection, Selection.End(xlDown)).Select 

'y = 0 

Do 
y = y + 1 
Selection.Find(What:="MEDIUM", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ 
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False,     
SearchFormat:=False).Activate 
With ActiveCell 
.Interior.ColorIndex = 44 
End With 
ActiveCell.Select 
Selection.Offset(0, 0).Select 
Range(Selection, Selection.End(xlDown)).Select 

Loop Until y = DataToCalc_MEDIUM 

Range("I14").Select 
Range(Selection, Selection.End(xlDown)).Select 

'Z = 0 
Do 
Z = Z + 1 
Selection.Find(What:="HIGH", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ 
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False,   
SearchFormat:=False).Activate 
With ActiveCell 
.Interior.ColorIndex = 44 
End With 
ActiveCell.Select 
Selection.Offset(0, 0).Select 
Range(Selection, Selection.End(xlDown)).Select 

Loop Until Z = DataToCalc_HIGH 

For i = 15 To 5000 
cuenta = WorksheetFunction.CountIf(Range("F15:F500"), Cells(i, "F")) 
If cuenta = 1 Then 
    Cells(i, "I").Interior.ColorIndex = 44 
End If 
Next 
'ActiveSheet.Protect Password:="QC" 

End Sub 
+3

あなた自身のために、このサイトで助けようとしている人々と、そのコードを継承する人のために、どのようにインデントするかを学んでください。または[それを行うツールを使用する](http://rubberduckvba.com/indentation)。 –

答えて

0

あなたのループDo...Loop Until (condition)は、少なくとも一度は実行されているとの条件は、ループの最後にチェックされています。代わりにDo Until (condition)...Loopループを使用することができます。その場合、最初に条件がチェックされ、すでに真であればループは実行されません。

関連する問題