[[20200717161216]] 『i行のB〜D列を選択』(K001) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『i行のB〜D列を選択』(K001)

i=1 to 100 として、
i行のB〜D列を選択するためにはどのように記述する必要がありますか?

 Range("iB:iC").Select = 1
これではエラーが出てしまいます。

< 使用 Excel:Office365、使用 OS:Windows10 >


選択…、と言いながら、1を代入しようとしてますね?
最終的に何をするのか判りませんが、範囲指定部分だけなら以下で意味が通じるでしょうか。
 Sub test()
    Dim i As Long

    For i = 1 To 100
        Range(Cells(i, "B"), Cells(i, "D")).Value = i
    Next i
 End Sub

こうも書けます。

        Range("B" & i & ":D" & i).Value = i
(???) 2020/07/17(金) 16:20

全在庫票があり、その中から在庫の有無で別シートにコピーさせたいと思っています。

行のすべてをコピーせず、列を指定した部分だけをコピーさせたいので質問いたしました。

現在のコードは以下なのですが、移動先のシートにすでに記載された別の事項も書き換えてしまうので対処法を探しています。

ご回答いただいたコードをどのように使えばうまくいくのかが無知でわかりません...

Sub Test02()

    Dim i As Long, z As Long, y As Long
    Dim sh2 As Worksheet
    Dim sh3 As Worksheet
    Application.ScreenUpdating = False
    With Sheets("全品目")
        z = .Range("K" & .Rows.Count).End(xlUp).Row
        For i = z To 3 Step -1
            If .Cells(i, "K").Value = "1" Then
                Set sh2 = Sheets("使用中")
                y = sh2.Range("B" & sh2.Rows.Count).End(xlUp).Row
                y = y + 1
                .Rows(i).Copy Destination:=sh2.Cells(y, 1)
            ElseIf .Cells(i, "K").Value = "2" Then
                Set sh3 = Sheets("返却済")
                y = sh3.Range("B" & sh3.Rows.Count).End(xlUp).Row
                y = y + 1
                .Rows(i).Copy Destination:=sh3.Cells(y, 1)
            End If
        Next
    End With
    Application.ScreenUpdating = True

 End Sub

(K001) 2020/07/17(金) 16:41


知恵の有無なんてどうでも良いから、教えられた事を利用して試行錯誤してみなさいな。 手を動かさずには進みませんよ。
コピー部分を、.Range(.Cells(i, "B"), .Cells(i, "D")).Copy …、とかすれば良いだけでは?
(???) 2020/07/17(金) 17:17

いろいろアレンジしましたがエラーにしかなりません
(K001) 2020/07/17(金) 17:23

どう直して、どの行で、どんなエラーメッセージが表示されるのですか? エラーとだけ書かれても伝わりません。

デバッグは自分で行うものであり、辛くても他人にやらせるものではありませんが、詳しく説明してくれればヒントくらいは出せるかもです。 何も書かないと、何も答えられませんよ。
(???) 2020/07/17(金) 17:29


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.