エクセルです。
・最終行は毎回違ってくるので
Cells(Rows.Count, "A").End(xlUp).Row
で取得したいです。
・今は最終行が51行という前提で作業をしています。
・1行目にはタイトルが入っています。
・2行目以降には文字が入っています。
今回はテストのため数字を入れました。
最終行が51の場合は
************************************************
Sub test1()
Dim i As Long
Dim cnt As Long
For i = 1 To 10
Call test2
Next
End Sub
--------------------
Sub test2()
Dim str As String
If cnt = 0 Or cnt = 42 Then
cnt = 2
ElseIf cnt = 2 Then
cnt = cnt + 10
ElseIf cnt = 12 Then
cnt = cnt + 10
ElseIf cnt = 22 Then
cnt = cnt + 10
ElseIf cnt = 32 Then
cnt = cnt + 10
End If
With Sheets("Sheet1")
For myRow = cnt To cnt + 9
str = str & "," & .Cells(myRow, 1)
Next myRow
End With
Debug.Print str
End Sub
************************************************
このような方法で、str に10個ずつセルの値を格納できるのですが
最終行が不明の場合はどうすればいいのでしょうか?
イミディエイトウインドウに表示される値は
,1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
,1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
です。
最終行まで来たらまた2行目から取得しなおします。
なのでIf cnt = 0 Or cnt = 42 Thenにしました。
最終行が60だったり65だったりした場合は、strに10個格納できないですが、少ない分には問題ないです。
これで、最終行が100でも200でも対応できるコードを作りたいのですが
わかりません。
お知恵を拝借願います。
No.4ベストアンサー
- 回答日時:
.End(xlUp).
で最終行を求めようとしますと、「現時点で実際に値が入力されている最終行」よりも下の行に、
「過去において値が入力された事はあるものの、その後、値が削除されて、現在は空欄となっているセル」や「ワークシート関数によって空欄が表示されているセル」等があった場合には、
求められる最終行の行番号が、「現時点で実際に値が入力されている最終行」の行番号ではなく、「過去の最終行」のそれとなってしまう場合があります。
ですから、最終行を求める場合には、Match関数を応用する方法の方が宜しいかと思います。
今仮に、「数値が入力されている最終行の行番号」の値を表す変数をLRとしますと、次の様なやり方で変数LR定義してから、変数LRを使用してセル範囲や、繰り返し処理の回数を記述すれば良いかと思います。
Dim LR As Long
If Application.WorksheetFunction.Count(Columns("A:A")) = 0 Then Exit Sub
LR = Application.WorksheetFunction.Match(9E+307, Columns("A:A"))
因みに、「数値が入力されている最終行の行番号」ではなく、「文字列データが入力されている最終行の行番号」を求める場合には、以下の様なやり方となります。
Dim LR As Long
If Application.WorksheetFunction.CountIf(Columns("A:A"), "*?") = 0 Then Exit Sub
LR = Application.WorksheetFunction.Match("*?", Columns("A:A"), -1)
No.3
- 回答日時:
No.2です!
投稿後に気づきました。
内容はほとんどNo.1さんと一緒になっていました。
どうもごめんなさい。
尚、前回のコード内の
>Debug.Print str
の行を
>Debug.Print Left(str, Len(str) - 1)
に変更すれば、余計なカンマは表示されないと思います。
何度も失礼しました。m(_ _)m
No.2
- 回答日時:
こんばんは!
一例です。
Sub Sample1()
Dim i As Long, cnt As Long, str As String
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 10
For cnt = 0 To 9
If Cells(i + cnt, 1) <> "" Then
str = str & Cells(i + cnt, 1) & ","
End If
Next cnt
Debug.Print str
str = ""
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
やり口はアイデア次第で様々ですが、ふつーに二重ループさせるだけで十分に見えます。
例:簡単のためとちゅーに空白セルが無い場合
sub macro1()
dim r1 as long
dim r2 as long
dim res as string
for r1 = 2 to cells(rows.count, "A").end(xlup).row step 10
res = ""
for r2 = 0 to 9
if cells(r1 + r2, "A") = "" then exit for
res = res & "," & cells(r1 + r2, "A")
next r2
res = mid(res, 2, 9999)
debug.print res
next r1
end sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) Dateserialで データ抽出 2 2022/06/26 21:07
- Visual Basic(VBA) 日付の計算方法 2 2022/07/01 23:35
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
首吊りどこ締めるの
-
射精をして1週間以内に尿検査を...
-
変な話しになります。尿検査で...
-
白血球が多いとどんな心配があ...
-
今朝、毎朝の習慣でオナニーし...
-
1日前の検尿
-
検便についてです。 便は取れた...
-
男です。昨日の午後3時くらいに...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
彼女のことが好きすぎて彼女の...
-
中出しをするとお腹が痛い・・・。
-
小数点以下を繰り上げたものを...
-
EXCELで式からグラフを描くには?
-
2つの数値のうち、数値が小さい...
-
値が入っているときだけ計算結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報