2
このマクロは、1回のクリックで実行されます。私はエラーを受け取ります。VBAデバッグの問題
実行時エラー「91」: オブジェクト変数またはブロック変数Iは、デバッグをクリックし
を設定し、それは、このハイライトされたエリアに私をリードしないと。ここで
Selection.Find(What:=DateString, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
全体の機能は何も見つからなかった場合、それは何も「をアクティブにしない」ことができないとして、あなたはエラーになりますあなたのコードを持つように、検索()関数は、Rangeオブジェクトを返します
Function GetBalance(Month As Integer) As Currency
'This function is called by the Calculate_Balance subroutine. It
'finds the appropriate month's balance on an employee sheet and sends
'it back to the calling routine.
Dim DateString As String
Dim RangeString As String
Dim Balance
Dim BalDate As Date
Dim strCurrMonth As String
Dim strCurrYear As String
Dim strFirstDayCurrMonth As String
strCurrMonth = CStr(DatePart("m", Date))
strCurrYear = CStr(DatePart("yyyy", Date))
strFirstDayCurrMonth = strCurrMonth & "/1/" & strCurrYear
dtmFirstDayCurrMonth = CDate(strFirstDayCurrMonth)
DateString = Month & "/1/"
Columns("A:A").Select
Range("A6").Activate
Selection.Find(What:=DateString, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
CurrRow = ActiveCell.Row
BalanceRow = CurrRow - 1 'Move up 1 row to get last balance for this month
RangeStr = "E" & BalanceRow
DateRangeStr = "A" & BalanceRow
BalDate = Range(DateRangeStr).Value
If BalDate <= dtmFirstDayCurrMonth Then
Balance = Range(RangeStr).Value
Else
Balance = 0
End If
GetBalance = Balance
End Function
私はこれを試しても、エラーは表示されなくなりました。しかし、マクロは各行で実行されました... – PlatiNUM
元の問題に対処していると思われるので、幸せであれば回答を受け入れてください。 – markblandford
エラーの問題は解決しましたが、依然として正しくありません。 – PlatiNUM