私は実行するたびに別のキーワードを使って私のサブの一部を実行したいと思います。現在、私はこのように書いていますが、私はそれを行うことができるより短い方法はありますか?私のサブの一部を繰り返してください
私は列Dに口座引落、ATM現金引き出し、およびデビットカードの購入のためのカテゴリを作ってるんだ - 列BにそれぞれD/D、C/L、およびPOSの検索私は
変数を変更しますが、毎回同じビットのコードを入力して実行します。私は "もう一度そのビットを走らせるが、SearchtermとSearchresultを変えて"と言うべき方法があるはずだと思う。
私は助けてくれる人以上の知識があると確信しています。私はすでにサブを使用しているので、そのサブ関数や関数内で実行する別のサブを挿入することはできませんか?そして私はすでにループしているので、別のループがどのように収まるのか分かりません。
あなたは何をしますか?あなたはおそらく私がこれについて新しいことを推測することができるので、過去にはほんの少しの知識しかありません。
Sub OrganiseDefaultCategories()
'
' OrganiseDefaultCategories Macro
' Categorise the Bank Statement Entries with Default inputs. Run this first.
'
Dim FoundRange As Range, FirstAddress As String, Searchterm As Variant, Searchresult As Variant
Searchterm = "D/D"
Searchresult = "Direct Debit"
With Range("b:b")
Set FoundRange = .Find(What:=Searchterm, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
FirstAddress = FoundRange.Address
Do
FoundRange.Offset(0, 2).Value2 = Searchresult
Set FoundRange = .FindNext(FoundRange)
Loop While Not FoundRange Is Nothing And FoundRange.Address <> FirstAddress
Searchterm = "C/L"
Searchresult = "ATM Cash Withdrawal"
Set FoundRange = .Find(What:=Searchterm, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
FirstAddress = FoundRange.Address
Do
FoundRange.Offset(0, 2).Value2 = Searchresult
Set FoundRange = .FindNext(FoundRange)
Loop While Not FoundRange Is Nothing And FoundRange.Address <> FirstAddress
Searchterm = "POS"
Searchresult = "Debit Card Purchase"
Set FoundRange = .Find(What:=Searchterm, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
FirstAddress = FoundRange.Address
Do
FoundRange.Offset(0, 2).Value2 = Searchresult
Set FoundRange = .FindNext(FoundRange)
Loop While Not FoundRange Is Nothing And FoundRange.Address <> FirstAddress
End With
End Sub
私はサブタスクsearchTermとsearchResultオプション引数をとるでしょう。 – C8H10N4O2