No.3ベストアンサー
- 回答日時:
こんにちは
>←この部分が黄色です。
直接の原因は、Cellを指定するのにCells(row, column)形式を利用しているのに、column(=列番号など)であるはずのところに"M35:M40"なるセル範囲を意味する文字列が入っているためです。
ですので、エクセルは「なんのこっちゃ?」とエラーにしています。
Cells(Rows.Count, "M")
とでもしておけば、そこの部分のエラーは回避できるでしょうが、ざっと見たところ全体的に何をどうしたいのかよくわかりません。
上記の部分にしても、その部分でM列の最終行を求めたいのかどうかも不明ですし・・・
他にも
・なぜDictionaryが必要なのか
・説明にないV7:BU7セルはいったい何なのか
などなど・・・
想像するところ、そのまま逐次修正を続けていっても、なさりたいことは実現できないのではないかと危惧します。
正しく修正をしたければ、関係するセルの正確な位置関係を示すことと、なさりたい事の全貌をきちんと説明(=第三者にわかるように)する必要がありそうです。
この回答へのお礼
お礼日時:2020/01/09 16:15
最も大事な台帳を画像画像添付できませんでした。何度も試したのですが無理の様です。ご指摘いただいたとおり、次の修正がでてきました。もう一度見直してみます。ご教授有り難う御座いました。
No.2
- 回答日時:
maxrow = sh3.Cells(Rows.Count, "M35:M40").End(xlUp).row
↓
↓
maxrow = sh3.Range("M35:M40").Rows.Count
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- 会計ソフト・業務用ソフト VBA 記録簿の行間を空けないコードを教えて欲しい。 5 2023/07/10 19:29
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excel VBA 指定セルに入力されているパスからシートをコピーして別のブックに転記するVBAのコ 2 2022/04/19 15:53
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
セルを結合した時のエクセル集...
-
エクセルで特定のセル内にだけ...
-
自分の左隣のセル
-
エクセル1行おきのセルを隣の...
-
エクセルで年月日から月日のみへ
-
エクセルで、指定の値よりも大...
-
エクセルで、A2のセルにA3...
-
エクセルでエンターを押すと任...
-
Excel 1の位の数字で処理を分岐...
-
同一セル内の重複文字を削除し...
-
Excelで大量のセルに一気に関数...
-
EXECL バーコード生成でBarCode...
-
【Excel】4つとばしで合計する方法
-
エラー「#REF」の箇所を置き換...
-
何時から何時までを○○、何時か...
-
excelで、空白を除いてデータを...
-
EXCELでマイナス値の入ったセル...
-
EXCELのcountif関数での大文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
自分の左隣のセル
-
エクセルで、指定の値よりも大...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
エクセルで特定のセル内にだけ...
-
EXCELのcountif関数での大文字...
-
エクセルに入力後、別シートの...
-
同一セル内の重複文字を削除し...
-
【Excel】4つとばしで合計する方法
-
条件付き書式の色付きセルのカ...
-
【Excel】IF文「ある文字を含ん...
-
エクセルで年月日から月日のみへ
-
エクセルでエンターを押すと任...
-
エラー「#REF」の箇所を置き換...
-
Excelで大量のセルに一気に関数...
おすすめ情報
追加コード1です。
Public Sub 転記2()
Dim sh3 As Worksheet
Dim sh1 As Worksheet
Dim maxrow As Long
Dim row As Long
Dim dicT As Object
Dim key As Variant
Set sh3 = Worksheets("台帳")
Set sh1 = Worksheets("入力シート")
Set dicT = CreateObject("Scripting.Dictionary")
maxrow = sh3.Cells(Rows.Count, "M35:M40").End(xlUp).row ←この部分が黄色です。
'小切手番号を記憶
For row = 7 To maxrow
key = sh3.Cells(row, "M35:M40").Value
追加コード2です。(続きです。)
dicT(key) = row
Next
key = sh1.Cells("M35:M40").Value
If dicT.exists(key) = False Then
MsgBox ("小切手番号=" & key & "は台帳にありません")
Exit Sub
End If
row = dicT(key)
sh3.Cells(row, "V7:BU7").Value = sh1.Cells("M35:M40").Value '小切手番号
MsgBox ("転記完了します")
End Sub