[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ 範囲内の最終行の設定方法??』(さくら)
お世話になります。どなたか分かりましたら教えてください。よろしくお願いします。 いろいろのサイト調べながら作りましたが、だんだんわけの分からないものに。。。。
最終行を求めるのは↓で分かりましたが、 .Range("A" & Rows.Count).End(xlUp).Row + 1
A8:F22の最終行を求め方が分かりませんでした。 範囲内での最終行は求められないものですか??
分かりましたら教えてください。よろしくお願いします。
A列最終行取得の一例
dim a as long a = range("a1").end(xldown).row
ご参考 http://www.moug.net/tech/exvba/0050077.htm
(うっかりさん)
うっかりさん早速回答ありがとうございます。 試してみましたが、ウマく転記されないままです。 どうも私のコードが違うのか??
何とかできないものでしょか?? (さくら)
色々あるけど。 A列からF列までループして、1番大きいものをとっても良いし。 BJ
for i = 1 to 6 RR = .Cells(Rows.Count,i).End(xlUp).row if Sav < RR then Sav = RR end if next msgbox Sav 因みに↑A8:F22の範囲とか考えてません。
Dim Rng As Range With Range("A8:F22") Set Rng = .Cells.Find("*", .Cells(1), xlValues, xlWhole, xlByRows, xlPrevious) MsgBox Rng.Row End With
BJさん回答ありがとうございます。 試してみましたが、やはりだめでした(T0T) 請求書のデータを在庫シートに転記したいですが、範囲の箇所に躓いています。 勉強したいと思っていますので、教えていただけませんか?よろしくお願いします。><
[請求書シートA1から作成しています。]
請求書 2010年5月17日 0120112222 宅配: 1 ヶ ABC 様
総合計 \7,800
NO 品名 単価 数量 金額 適用 A1 オレンジ 130 2cs/ 60pc 7,800 A2 商品B 140 2cs 60pc 8,400 0 0 0 0 0 0 0 0 0 0 0 0 0 合計 16,200
[在庫シートA1から記録]
客NO 店名 年月日 NO 品名 単価 数量 金額 0120112222 ABC 2010年5月17日 A1 オレンジ 130 2cs/ 60pc 0120112222 ABC 2010年5月17日 A2 商品B 140 2cs 60pc
Sub 登録()
Dim mr As Long Dim i As Long, ii As Long, cn As Long Dim kk, WS As Worksheet Dim msg As String
Set WS = Worksheets("客情報") kk = Application.Match(Range("A2").Value, WS.Range("A:A"), 0) 'TEL番頭チェック If Range("A2").Value = "" Then msg = vbLf & "氏名を入力してください。" Exit Sub End If
'在庫シートへ転記 With Sheets("在庫") mr = .Range("A" & Rows.Count).End(xlUp).Row + 1 .Cells(mr, 1).Value = Range("A2").Value 'TELL .Cells(mr, 2).Value = Range("A3").Value '店名 .Cells(mr, 3).Value = Range("G1").Value '日付 'A8:F22範囲内の最終行
↑この上までは転記できましたが、↓が転記できないでいます。
記入している箇所が違うのでしょか??
r = Range("B8" & Rows.Count).End(xlUp).Row - 1 '行番頭 i = 1 For ii = 1 To 6 '列番号 .Cells(mr, ii).Value = Cells(kk, ii).Value Next End With
'宅急便シートへ転記 With Sheets("宅急便") mr = .Range("A" & Rows.Count).End(xlUp).Row + 1 .Cells(mr, 1).Value = Range("A2").Value '番号 .Cells(mr, 2).Value = Range("H2").Value '個数 End With
With Sheets("情報")
'データ存在チェックない時のみ転記する If IsNumeric(kk) Then MsgBox kk & "行目に重複の職員番号がありました。" Else '↓ダブりがないときの処理 .Cells(mr, 1).Value = Range("A2").Value 'TELL .Cells(mr, 2).Value = Range("A3").Value '店名
End If
End With
End Sub
説明下手ですが、わかりますか??
(さくら)
For ii = 1 To 6 '列番号 .Cells(mr, ii).Value = Cells(kk, ii).Value Next これはどの様な情報を転記するのか解りませんが、もし客情報シートの情報を書き込むとしたら Cells(kk, ii).ValueはWorksheets("客情報").Cells(kk, ii).Valueでは。 後、再度A列から書き込みしていますが良いのでしょうか? (PON)
解りにくかったかもしれないけど、一応2種書いておいたので、 こっちを試してください。 BJ
Dim Rng As Range With Range("A8:F22") Set Rng = .Cells.Find("*", .Cells(1), xlValues, xlWhole, xlByRows, xlPrevious) MsgBox Rng.Row End With
PON さん回答ありがとうございます。^^
With Sheets("在庫") mr = .Range("A" & Rows.Count).End(xlUp).Row + 1 .Cells(mr, 1).Value = Range("A2").Value 'TELL .Cells(mr, 2).Value = Range("A3").Value '店名 .Cells(mr, 3).Value = Range("G1").Value '日付 'A8:F22範囲内の最終行 r = Range("B8" & Rows.Count).End(xlUp).Row - 1 '行番頭 i = 1 For ii = 1 To 6 ' ◆←は .Cells(mr, ii).Value = Cells(r, ii).Value Next End With
請求書シートのデータを在庫シートに転記するものです。
お客情報シートは関係ないものです。
(さくら)
BJさん回答ありがとうございます。
すみません見逃しました。^^;;
上のコードに入れられなかったので、 単独のコードで試したところ、 メッセージBOXが「9」と 最終行は表示されましたが。。。
転記するコードではない?ですか?
(さくら)
>転記するコードではない?ですか? ちょっと意味が解りませんでした。
>最終行は表示されましたが。。。 最終行が解れば良かったのではないですか? BJ
BJさん回答ありがとうございます。
>>最終行は表示されましたが。。。 >最終行が解れば良かったのではないですか?
はい。その通りです。質問ガ下手ですみません。
最終行を調べてそのデーターを別のシートに転記できる コードを知りたいです。分かりましたら、教えてください。よろしくお願いします
(さくら)
With 貼り付け元シート.Range("A8:F22") Set Rng = .Cells.Find("*", .Cells(1), xlValues, xlWhole, xlByRows, xlPrevious) 行 = Rng.Row 貼り付け先シート.Range("A" & mr & ":F" & mr).Value = Application.Intersect(Rows(行), .Cells).Value End With BJ
ためしましたが、転送先のシートは真っ白になります。 なぜですか?
質問が下手で何度もすみません。 自分のやりたいことは
A8:F22 の 各行のデータ (空白行は除く) + A2 A3 F1 のデータ = 在庫シート一覧表に転送させることです。
マクロで出来ますか?ずっとやっていますが、ほしい結果にならず困っています。 分かりましたら、教えてください。よろしくお願いします。
(さくら)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.