[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ブックのワークシートのセルへの転記』(和哉)
Sub マスターデータ取込01() '指定したファイルを取り込み、別のファイルに貼り付ける。
Dim SetFile As String Dim wbMoto, wbSaki As Workbook Dim i As Integer Dim j As Integer
Set wbMoto = ActiveWorkbook 'マスターデータ取り込み元をブック名をセット(取り込み元)
Application.DisplayAlerts = False
SetFile = "C:\Users\user\Desktop\価格変更.xlsx " 'Sheet1'!R" & i - 3 & "C" & 2マスターデータファイルの取り込み場所をセット(取り込み先)
Workbooks.Open Filename:=SetFile, ReadOnly:=True, UpdateLinks:=0 'マスターデータファイルを読み取り専用で開きます() Set wbSaki = Workbooks.Open(SetFile) '開いたマスターブック名とセット(取り込み先)
For i = 17 To 20 For j = 11 To 5 Step -2
wbSaki.Worksheets("パウチ用").Cells(i - j, 3).Value = wbMoto.Worksheets("商品価格一覧表").Cells(i, 3).Value
wbSaki.Worksheets("商品価格一覧表").Cells(i - j, 5).Value = wbMoto.Worksheets("本竜野").Cells(i, 5).Value Next j Next i
Application.CutCopyMode = False 'コピー切り取りを解除
Application.DisplayAlerts = True
End Sub
価格変更ブックのパウチ用シートにアクティブブックの商品価格一覧表シートのデータを転記したいのですが、不規則なセルに入力されているためうまくいきません?
For〜Nextで不規則なセルへの転記がうまくいきません
For i = 17 To 20 For j = 11 To 5 Step -2
wbSaki.Worksheets("パウチ用").Cells(i - j, 3).Value = wbMoto.Worksheets("本竜野").Cells(i, 3).Value
wbSaki.Worksheets("パウチ用").Cells(i - j, 5).Value = wbMoto.Worksheets("本竜野").Cells(i, 5).Value Next j Next i どの様にコードを変えたらいいのか?何方かレクチャーお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Dim SetFile As String Dim wbMoto, wbSaki As Workbook Dim i As Integer Dim j As Integer
Set wbMoto = ActiveWorkbook 'マスターデータ取り込み元をブック名をセット(取り込み元)
Application.DisplayAlerts = False
SetFile = "C:\Users\user\Desktop\価格変更.xlsx " 'Sheet1'!R" & i - 3 & "C" & 2マスターデータファイルの取り込み場所をセット(取り込み先)
Workbooks.Open Filename:=SetFile, ReadOnly:=True, UpdateLinks:=0 'マスターデータファイルを読み取り専用で開きます() Set wbSaki = Workbooks.Open(SetFile) '開いたマスターブック名とセット(取り込み先)
For i = 17 To 20 For j = 11 To 5 Step -2
wbSaki.Worksheets("パウチ用").Cells(i - j, 3).Value = wbMoto.Worksheets("商品価格一覧表").Cells(i, 3).Value
wbSaki.Worksheets("パウチ用").Cells(i - j, 5).Value = wbMoto.Worksheets("商品価格一覧表").Cells(i, 5).Value Next j Next i
Application.CutCopyMode = False 'コピー切り取りを解除
Application.DisplayAlerts = True
End Sub
価格変更ブックのパウチ用シートにアクティブブックの商品価格一覧表シートのデータを転記したいのですが、不規則なセルに入力されているためうまくいきません?
For〜Nextで不規則なセルへの転記がうまくいきません
For i = 17 To 20 For j = 11 To 5 Step -2
wbSaki.Worksheets("パウチ用").Cells(i - j, 3).Value = wbMoto.Worksheets("商品価格一覧表").Cells(i, 3).Value
wbSaki.Worksheets("パウチ用").Cells(i - j, 5).Value = wbMoto.Worksheets("商品価格一覧表").Cells(i, 5).Value Next j Next i どの様にコードを変えたらいいのか?何方かレクチャーお願いいたします すいませんでした。正しいコードはこれです。 (和哉) 2022/06/14(火) 11:06
元データが「不規則なセルに入力されている」のか、
転記先が「不規則なセル」なのか、どちらでしょうか?
そもそも「不規則なセル」といっても、どうなっているのかわかりません。
また、「うまくいきません」といっても、どうなっているのかわかりません。
(わからん) 2022/06/14(火) 11:12
(和哉) 2022/06/14(火) 11:32
ご参考。
Sub test() For i = 17 To 20 MsgBox (i - 17) * 3 + 6 Next End Sub
(わからん) 2022/06/14(火) 11:42
目的と違っていたならスルーしてください。
(わからん) 2022/06/14(火) 12:15
・wbMotoがValiant型になってます ・wbSakiが2度開かれています
既に↓で述べてますので参考にしてみて下さい。
【過去ログ】 [[20210122143920]] 『データの最終行までコピー』(Help) [[20210301134135]] 『実行時エラー1004の原因』(sugar) [[20210403111842]] 『指定した値を検索し、別エクセルに転記したい』(SS) [[20210531191339]] 『別シートのマクロ実行』(すにゃ) [[20210623143216]] 『VBAのコピーについて』(健太) [[20210713155219]] 『「暗証番号付きのファイルの範囲をコピーして取込』(超初心者)
■2
↓は何をしているか理解出来てますか?
〜〜〜.Value = 〜〜〜.Value Application.CutCopyMode = False
■3
こだわりがなければ、インデント(字下げ)を付けることを考えると良いと思います。
■4
>元テ゛-タは規則正しくRange("C17:C20")とRange("E17:E20")入力されていますが、
>転記先はC6,C9,C12,C15の範囲とE6,E9,E12,E15の範囲のどちらも飛び飛びにデータが入っております。
正直、私にはセルの関係性がピンと来てないのですが、↓のような関係性なんでしょうか?
wbMoto.Worksheets("商品価格一覧表").Range("C17:C20") → wbSaki.Worksheets("パウチ用").Range("C6:C9").Value wbMoto.Worksheets("商品価格一覧表").Range("E17:E20") → wbSaki.Worksheets("パウチ用").Range("E6:E9").Value
何らかのシート.Range("C17:C20") → wbSaki.Worksheets("パウチ用").Range("C12:C15").Value 何らかのシート.Range("E17:E20") → wbSaki.Worksheets("パウチ用").Range("E12:E15").Value
1シート処理する度に、出力先のセルが下に6こずれるみたいな・・・ (それなら、既に指摘されているように規則性はありますね)
(もこな2 ) 2022/06/14(火) 13:08
このように↓理解して回答したのですが、本当のところは質問者さんにしかわかりません。
C17 → C6 、 E17 → E6 C18 → C9 、 E18 → E9 C19 → C12 、 E19 → E12 C20 → C15 、 E20 → E15
(わからん) 2022/06/14(火) 13:34
そうなると、こんな感じですかね。
Sub テキトー() Dim srcSH As Worksheet, dstSH As Worksheet Dim i As Long
Set srcSH = ActiveWorkbook.Worksheets("商品価格一覧表") Set dstSH = Workbooks.Open("C:\Users\user\Desktop\価格変更.xlsx").Worksheets("パウチ用")
For i = 0 To 3 Step 1 dstSH.Range("C6").Offset(i * 3).Value = srcSH.Range("C17").Offset(i).Value dstSH.Range("E6").Offset(i * 3).Value = srcSH.Range("E17").Offset(i).Value Next i End Sub
(もこな2 ) 2022/06/14(火) 16:38
(泰人) 2022/06/15(水) 16:32
※一応、こちらの環境では↓のようにして想定通り動作することは確認済です。 Sub テキトー() Dim srcSH As Worksheet, dstSH As Worksheet Dim i As Long Set srcSH = Worksheets("元") Set dstSH = Worksheets("先") For i = 0 To 3 Step 1 dstSH.Range("C6").Offset(i * 3).Value = srcSH.Range("C17").Offset(i).Value dstSH.Range("E6").Offset(i * 3).Value = srcSH.Range("E17").Offset(i).Value Next i End Sub
★2
>カウンター変数
「カウンター変数」とは何を想定しているのかわかりませんが、↓で「i」という変数が1ずつカウントアップしています。
For i = 0 To 3 Step 1 dstSH.Range("C6").Offset(i * 3).Value = srcSH.Range("C17").Offset(i).Value dstSH.Range("E6").Offset(i * 3).Value = srcSH.Range("E17").Offset(i).Value Next i
(もこな2 ) 2022/06/15(水) 20:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.