[[20200311230415]] 『VBAひとつ飛ばした列へのコピー貼り付け』(まえだけいじ) ページの最後に飛ぶ

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

 

『VBAひとつ飛ばした列へのコピー貼り付け』(まえだけいじ)

確認台帳より会計台帳へ下記のような転記コードを貼り付けています。
上司より抽出列の10だけをH2(H列)へ転記できないか?と言われて困っています。
現状のままですと、抽出列の1はA2・5はB2・6はC2・2はD2・3はE2・4はF2・
10はG2へ転記されます。
下記のコードに1列とばして転記することは可能でしょうか。ちなみに
G2には関数を設定することになります。
色々自分なりに調べてみて、やっとコードを考えたのですが、1列飛ばして
転記に辿りつけず・・・。

よろしくお願いします

Sub 台帳へ貼り付け()

     Dim データ範囲 As Range
     Dim 抽出列 As Variant
     Dim i As Long

     Set データ範囲 = Worksheets("確認台帳").Range("A1").CurrentRegion
     Set データ範囲 = Intersect(データ範囲, データ範囲.Offset(1))

     抽出列 = Array(1, 5, 6, 2, 3, 4, 10)

     For i = 0 To UBound(抽出列)
         データ範囲.Columns(抽出列(i)).Copy Sheets("会計台帳").Range("A2").Offset(0, i)
     Next i
 End Sub

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


抽出列(i)で条件判定して、
貼付先を変更すればよいでしょう。
つまり、それが10の時だけ、
Sheets("会計台帳").Range("A2").Offset(0, i).offset(0,1)に貼り付けるように。

(γ) 2020/03/11(水) 23:28


 >データ範囲.Columns(抽出列(i)).Copy Sheets("会計台帳").Range("A2").Offset(0, i)

 データ範囲.Columns(抽出列(i)).Copy Sheets("会計台帳").Range("A2").Offset(0, IIf(i <> 6, i, 7))
(ピンク) 2020/03/11(水) 23:37

Yさん
ピンクさん

はじめからコードを考えなくてはいけないと思っていました。
iのところでIIFを設定することでひとつ飛ばせるのですね!
ふたつ飛ばす場合は、6,i,8とか。
いま勉強中なので、参考になりました。ありがとうございました。
上司の依頼に応えることができました。
(まえだけいじ) 2020/03/11(水) 23:56


コメント返信:

[ 一覧(最新更新順) ]


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