Bonjour!サブオンループvbaを呼び出すときに文字列を更新する
私のプロジェクトにはループがあり、ループ内では、要素の列番号を数えるためにサブ(Stcount)を呼び出します。このサブは、ループごとに変化する文字列(文字列)を送ります。ただし、サブ(Stcount)は、文字列(ststring)の変更を認識していないようです。
まず、私はこのために使用するいくつかの変数を定義することによって開始するが、このサブで
Public counterSt As Integer
Public ststring As String
Public rng As Range
Public rng2 As Range
をシーケンス、私は私のサブのための基本となる文字列を定義
Sub test()
Dim Stx(9) As String
Stx(1) = "Stx1"
Stx(2) = "Stx2"
Stx(3) = "Stx3"
Stx(4) = "Stx4"
Stx(5) = "Stx5"
Stx(6) = "Stx6"
Stx(7) = "Stx7"
Stx(8) = "Stx9"
Stx(9) = "Stx10"
Set rng2 = Range("G10")
For i = 1 To 9
ststring = "ist_" & Stx(i)
Call StCount
rng2.Value = counterSt
Set rng2 = rng2.Offset(1, 0)
Next i
End Sub
I StCountを呼び出すと、counterStの値が更新されます。最初の文字列については、正常に動作します。しかし、ループすると、使用するべき新しい文字列が認識されないようです(文字列)。したがって、毎回同じ値を返します。
Sub StCount()
Set rep = ActiveWorkbook.Sheets("Sheet2")
Set sh1 = ActiveWorkbook.Sheets("Sheet1")
Dim trng As Range
Set trng = rep.Range("A4:HV4")
For Each rng In trng
If rng.Value = ststring Then
counterSt = Range(rng, rng.End(xlToLeft)).Columns.count
End If
Next rng
End Sub
チェックで、私はStstringが正しく更新されたかどうかを確認しようとしました。私はまた、手動でststringの値を更新しようとし、別のststrings(それも働いた)と同じサブのStCount異なる時間を呼び出してみました。したがって、私は問題がループにあると信じています。
アイデア?
サリュー、セットTRNG = rep.Range(「A4は:HV4」)私はもっとこのような何かをお勧めしたい変更されることはありません、これは変更しない場合は常に同じ範囲をループ、私はドンこれがあなたが望むものだと想像してはいけませんか? – User632716
Trngはテーブルのヘッダーです。だから、列番号が何であるかを知りたいので、固定しておきたい –