以下のコードは単純な数式リピータです。私は正常に動作したものを持っていましたが、select
とactivate
から離れて変数を宣言してコードを読みやすくしたいと思います。最初の空白行で開始し、VBAのFor..Nextループのカウンタの変数を宣言する
私は基本的に自分のショートカットを押して、コードをF列(F4から始まる)の最初の空白行から開始したいと考えています。次に、コードにこの形式の値を使用して数式を入力します。数式(ValueTwoColumnsLeft、ValueOneColumnLeft)。
私が本当に必要とするのは、For..nextループを理解することです。 For StartCell = 1 To 2500
の部分については、i
が何を想定しているのか、どう定義すればよいのか分かりません。私はそれが範囲ではないことを知っています、そしてそれはもはや意味をなさない。
Sub FormulaRepeater()
' Keyboard Shortcut: Ctrl+q
Dim sht As Worksheet
Dim Address As Range
Dim rowcount As Long
Dim Latitude As String
Dim Longitude As String
Dim result As String
Dim StartCell As Range
Set sht = Worksheets("S2")
Set Address = sht.Range("F4").End(xlDown)
rowcount = sht.Cells(Rows.Count, Address) 'start from first blank row in F
Set StartCell = sht.Cells(rowcount + 1, Address)
Latitude = Cells.Offset(0, -2).Value ' get latitude 2 cells to the left
Longitude = Cells.Offset(0, -1).Value 'get longitude 1 cell to the left
'Would using offset here be the same as select i.e. sets Application.ScreenUpdating=True
For rowcount = StartCell To 10 'from the selected cell to 2500, _
which is the daily limit for the Google API
result = GEOAddress(Latitude, Longitude)
Next
End Sub
P.Sという式は心配しないでください。それは自分で動作します。はい、私はそれを下にドラッグできますが、私は練習しようとしています。行カウントATMを定義する際に型の不一致が発生しました。ワークシートを宣言するのを忘れたが、
感謝を探している願っています! 残念ながら、これは私のタイトルと同じ問題をもたらします。カウンタAKA「i」は定義されていない。私はこれが何を意味するのか分かりません... 私は実際に行のメソッドの底から始めるのが好きです、+1の必要性を排除します。素晴らしいヒント! –
@ J.H、編集されたコードを参照してください。 "i"の目的は、F列から対応するlatituteとlongitureを取得することです。 –
ループの終わりに "Next i"にしてはいけませんか?私が間違っているなら私を訂正してください! –