Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4321 / 13646 ツリー ←次へ | 前へ→

【57327】抽出データをコピーし、貼り付けたいのですが・・ みどり 08/8/7(木) 23:58 質問[未読]
【57330】Re:抽出データをコピーし、貼り付けたいの... Jaka 08/8/8(金) 15:49 発言[未読]
【57334】Re:抽出データをコピーし、貼り付けたいの... みどり 08/8/8(金) 18:54 お礼[未読]
【57335】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/8(金) 20:20 発言[未読]
【57336】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/8(金) 20:31 発言[未読]
【57337】Re:抽出データをコピーし、貼り付けたいの... みどり 08/8/9(土) 1:32 お礼[未読]
【57338】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/9(土) 10:37 発言[未読]
【57339】Re:抽出データをコピーし、貼り付けたいの... みどり 08/8/9(土) 13:55 お礼[未読]
【57340】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/9(土) 16:13 発言[未読]
【57341】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/9(土) 17:00 発言[未読]
【57343】Re:抽出データをコピーし、貼り付けたいの... みどり 08/8/9(土) 20:49 お礼[未読]
【57342】Re:抽出データをコピーし、貼り付けたいの... kanabun 08/8/9(土) 19:12 発言[未読]
【57344】Re:抽出データをコピーし、貼り付けたいの... みどり 08/8/9(土) 20:58 お礼[未読]

【57327】抽出データをコピーし、貼り付けたいので...
質問  みどり  - 08/8/7(木) 23:58 -

引用なし
パスワード
   はじめまして。VBA初心者です。Exel2000を使用しています。
よろしくお願いします。

sheet1にてオートフィルタで日付(D列)から検索し、抽出したデータを別のファイルsheet2へ同じ日付のセルにMatch関数にてデータを貼り付けしようとしております。

(sheet1)・・オートフィルタD列の日付で抽出。
  A   B    C      D     E     ・・・・・
1 番号 県名   名前    日付    ***・・・・・       
1  1  北海道  佐藤   20080807   ***
2  2  青森   伊藤   20080807   ***
3  3  茨城   高橋   20080808   ***
4  4  大阪   青木   20080809   ***
5  5   福岡   山田   20080809   ***
・ 

↑同じように別エクセルファイルsheet2のD列にも日付が入っております。項目も同じように並んでおります。

Sub 抽出したデータをコピーして貼付()

Dim データの日付 As Long
  Selection.CurrentRegion.Copy
  データ日付 = Range("D1").Value---------------※注

Workbooks("別ファイル.xls").Activate
Sheets("sheet2").Select            
Set 検査範囲 = Sheets("sheet2").Range(N1:N65536)
行番号 = Application.WorksheetFunction.Match(データ日付,検査範囲,0)
Range("A" & 行番号).Select
Selection.PasteSpecial Paste:=xlPasteAll

----------------------------------------------
質問は、
ただ今 ※注 のD1のセルの日付のみしか抽出できないコードなのですが、
D列で抽出した結果の日付を見て、Sheet2の同じ日付の行に貼り付けたいのです・・
色々調べてみまして似ているようなコードを参考にしてつくってみたのですが・・
どう変更していいのかわかりません・・・
何か良い方法がありましたら、教えていただけますでしょうか?

【57330】Re:抽出データをコピーし、貼り付けたい...
発言  Jaka  - 08/8/8(金) 15:49 -

引用なし
パスワード
   え〜と、どの変がわからないのかよく解りません。

オートフィルタに関しては出来ているのですか?
オートフィルタした後のデータの取得なら、
こんな感じです。

Dim Cel As Range
With Sheets("Sheet1").AutoFilter.Range
  With .Resize(.Rows.Count - 1).Offset(1)
   For Each Cel In .Columns(4).SpecialCells(xlCellTypeVisible).Cells
     MsgBox Cel.Value
   Next
  End With
End With

【57334】Re:抽出データをコピーし、貼り付けたい...
お礼  みどり  - 08/8/8(金) 18:54 -

引用なし
パスワード
   ▼Jaka さん:
はじめまして、返信ありがとうございます。

す、すみません、緊張していてうまく説明できていないかもしれません・・

データの更新と申しますか、一部のデータが変更になった最新のファイルを貰った際、(そのファイルには以前貰っている必要のない過去の日付とデータも入っているので手動オートフィルで、必要な未来の日付で抽出します。)
今まで使用している元のファイル(別ファイル.xls)には変更前の未来の日付が入ったデータがあるのですがそこに貼り付け(上書き?)できればいいな・・と・・・・
(同じ日付で件数が増えたり減ったりするので行の場所が変わってしまうのでMATCH関数でD列から探せればと・・)
説明下手でごめんなさい。

>オートフィルタに関しては出来ているのですか?
→オートフィルタはVBAではなく手動でやっております^^

>オートフィルタした後のデータの取得なら、
>こんな感じです。
>
ありがとうございます!
早速こちらを使わせていただき、ちょっと変更してみたのですが、、

Sub 抽出したデータをコピーして貼付()
Selection.CurrentRegion.Copy

>Dim Cel As Range
>With Sheets("Sheet1").AutoFilter.Range
>  With .Resize(.Rows.Count - 1).Offset(1)
>   For Each Cel In .Columns(4).SpecialCells(xlCellTypeVisible).Cells
>     MsgBox Cel.Value
>   Next
>  End With
>End With

Workbooks("別ファイル.xls").Activate
Sheets("sheet2").Select            
Set 検査範囲 = Sheets("sheet2").Range(N1:N500)  
行番号 = Application.WorksheetFunction.Match(Cel,検査範囲,0)・・←※ココ
Range("A" & 行番号).Select
Selection.PasteSpecial Paste:=xlPasteAll

※ココで
「エラー5・プロシージャの呼び出し、または引数が不正です」
とメッセージがでてきました。
よくよく理解ができないのに、Match(検査値・・・の所をMatch(Cel・・・に置き換えてしまったからでしょうか・・・
厚かましいかとは思いますが宜しければ教えていただけませんでしょうか?
よろしくお願いいたします。

【57335】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/8(金) 20:20 -

引用なし
パスワード
   ▼みどり さん:
横から失礼します。

> (sheet1)・・オートフィルタD列の日付で抽出。
>   A   B    C      D     E     ・・・・・
> 1 番号 県名   名前    日付    ***・・・・・       
> 1  1  北海道  佐藤   20080807   ***
> 2  2  青森   伊藤   20080807   ***
> 3  3  茨城   高橋   20080808   ***
> 4  4  大阪   青木   20080809   ***
> 5  5   福岡   山田   20080809   ***
> ・ 

こちらのシートについては だいたいイメージがつかめます。
(D列の 日付 というのが、ほんとの日付か 単に8桁の数値が日付風に並んで
いるだけなのか、については、お答えが欲しいですが)

上のシートからD列で抽出したデータを転記する先のシート
別Bookの 「sheet2」のほうが、こちらにはイメージつかめません。

上のような形で、
転記前のシートレイアウト と、
転記後のシートレイアウト(どのようになってほしいか )を再度
ご説明願えませんか?

【57336】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/8(金) 20:31 -

引用なし
パスワード
   たとえば、
送り返されてきたBookのSheet1 が

(sheet1)・・オートフィルタD列の日付で抽出。
   [A]  [B]    [C]    [D]      [E]    ・・・・・
[1] 番号 県名   名前    日付    ***    ・・・・・
[2]  1  北海道  佐藤   20080807   ***
[3]  2  青森   伊藤   20080807   ***
[4]  3  茨城   高橋   20080808   ***
[5]  4  大阪   青木   20080809   ***
[6]  5   福岡   山田   20080809   ***


のようで、
現在の手元にあるBookの Sheet2 が↓のようだとすると、
   [A]  [B]    [C]    [D]      [E]    ・・・・・
[1] 番号 県名   名前    日付    ***    ・・・・・
[2]  1  北海道  佐藤   20080807   ***
[3]  2  青森   伊藤   20080807   ***
[4]  3  茨城   高橋   20080808   ***
[5]              20080809      
[6]               20080809      
[7]               20080809      
[8]               20080809      



(Sheet1) のD列に 20080809 でAutoFilterをかけると、
   [A]  [B]    [C]    [D]      [E]    ・・・・・
[1] 番号 県名   名前    日付    ***    ・・・・・
[5]  4  大阪   青木   20080809   ***
[6]  5   福岡   山田   20080809   ***

の2行が抽出されますが、
この2行を (Sheet2) の [5][6]行目に、Copyしたいということですか?
そのばあい(複数行抽出されたとき) 転記先シートに対応する日付が
ちょうど2行あれば問題ないですが、1行だったり、上のシートレイアウト
のように、4行あったときはどうしますか?
転記先にその日付が1行も見当たらなかったときはどうしますか?

【57337】Re:抽出データをコピーし、貼り付けたい...
お礼  みどり  - 08/8/9(土) 1:32 -

引用なし
パスワード
   ▼kanabun さん:
はじめまして、返信ありがとうございます。
ご連絡が遅くなりましてすみません。
そしてうまく説明できていなくてすみません・・

kanabunさんがおっしゃられたように、まさしく、↓

>
>(Sheet1) のD列に 20080809 でAutoFilterをかけると、
>   [A]  [B]    [C]    [D]      [E]    ・・・・・
>[1] 番号 県名   名前    日付    ***    ・・・・・
>[5]  4  大阪   青木   20080809   ***
>[6]  5   福岡   山田   20080809   ***
>
>の2行が抽出されますが、
>この2行を (Sheet2) の [5][6]行目に、Copyしたいということですか?

・・はい、このような結果が出ればいいなあと思っておりました!
私の説明下手な文章を読みとってくださり感謝しております。

あと、

>そのばあい(複数行抽出されたとき) 転記先シートに対応する日付が
>ちょうど2行あれば問題ないですが、1行だったり、上のシートレイアウト
>のように、4行あったときはどうしますか?

・・・更新されてくるデータは極端に膨大な量になったり、少なかったり‥は
ないかと思われるので、もう、手作業で行の挿入・削除とかしようと思っております・・・コードでかければ良いかとは思いますが勉強不足の私の頭では厳しそうです・・お恥ずかしい限りです。


>転記先にその日付が1行も見当たらなかったときはどうしますか?
・・・こちらは日付が見当たらないという事は今までなかったのでこちらは問題ないかと思われます。ありがとうございます!!

何だかな〜、な雰囲気の返信で申し訳ないです、、
でも返信いただけたこと嬉しく思っております。
よろしくお願い致します。

【57338】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/9(土) 10:37 -

引用なし
パスワード
   ▼みどり さん:
> >の2行が抽出されますが、
> >この2行を (Sheet2) の [5][6]行目に、Copyしたいということですか?
>
> ・・はい、このような結果が出ればいいなあと思っておりました!

「このような結果」と言われましても、そこがこちらにはよく分からな
いのです。
ぼくがあげた別Book(sheet2)レイアウト例では
  列の構成が (Sheet1)とまったく同じで、
  kanabun(Sheet2)も、日付列が【D列】にありましたが、
みどりさんのコードでは (Sheet2)から日付?を検索するとき
> Set 検査範囲 = Sheets("sheet2").Range(N1:N500)  
> 行番号 = Application.WorksheetFunction.Match(Cel,検査範囲,0)・・←※ココ
と、【N列】を参照されてます。

このように、言葉ではすれ違いが起きます。できるだけ作業イメージを
共有化するためにも、
●当初の(転記前の) Sheet2 のレイアウトサンプルと、
●どのような結果になればよいのかの(転記後の)サンプルレイアウトを
みせていただけませんか?


> ・・・更新されてくるデータは極端に膨大な量になったり、少なかっ
> たり‥はないかと思われるので、
> もう、手作業で行の挿入・削除とかしようと思っております
> ・・・コードでかければ良いかとは思いますが

「手作業で行の挿入・削除とか」するのでいいです。
それを、もっと具体化してことばにしてみてください。
「行の挿入・削除」全作業工程について。
手作業での方法が適切であれば、それをコードに変換するのは
それほど難しいことではないです。

手作業で
(sheet1)のD列から ある条件での日付を抽出するとき、
オートフィルタ範囲は[D1]にカーソルをおいてAutoFilterを
開始されているようでしたら、その方法はまずいです。
[A1:N1]とか1行目見出し行を選択してAutoFilterを開始されて
いるようでしたら、その方法もまずいです。
D列を条件列にして抽出するなら、[D1:D列最終行]を
選択してから、フィルタをかけてください。
D列だけにAutoFilterをかけることに抵抗があるようでいたら、
データを含む「表全体」を選択してAutoFilterを開始してください。
これが、抽出されたデータをどこか他の場所へ転記しようとするとき
のポイントです。
ただ、今回は、
抽出された条件行を「まとめて」別シートにコピペするのではない
ようなので、オートフィルタで抽出するというより、
   D 列を上から順に調べていって、
   条件に合致する日付があったら その行を
    別シートの条件にあう行に 転記する
        (↑★実はこれがまた 大問題なのですが... ) 
   を繰り返す For Each 〜Next
方式のほうがよいのではないか とも、考えられるのですが。


先ほどの★を付した問題ですが、
Match関数でN列を検索しておられますよね?
 
> Set 検査範囲 = Sheets("sheet2").Range("N1:N500")
                 ▲ダブルクォートを追加
> 行番号 = Application.WorksheetFunction.Match(Cel,検査範囲,0)

これは、具体的には、
  行番号 = WorksheetFunction.Match(20080809, 検査範囲, 0)
ということですが、検査範囲に 20080809 が2つあった場合、
2番目の 20080809 はどう検索するのですか?
Matchでヒットするのは(検索の型0のとき)いつも最初のセルですよ?

なお、
> ※ココで
> 「エラー5・プロシージャの呼び出し、または引数が不正です」
> とメッセージがでてきました。
というのは、Cel に何も入っていない、Cel が Nothing だったから
でしょう。


とりとめがなくなってきたので、とりあえず
1.転記前、転記後の(sheet2)のレイアウトのサンプルを見せてください
2.抽出元シート(sheet1) AutoFilterではなく、D列を順に条件にあう
 行を(Sheet2)へコピーするとしたら、
 手作業で、どうするか、
 どの列をどの列にCopyするとかの 手順を具体化してください。
 手作業のマクロ記録があればもっといいです。
3.(sheet2)のどこにコピーするか、
  (sheet2)の対応する日付が複数あったばあい、手作業で何らか
  の判断をして行を特定されていると思いますが、どのように
  判断していますか? それを言葉にしてみてください。
 たとえばですが、
  はじめて(sheet1)から 20080809 の行を転記するときは、
   Matchで(sheet2)の 最初にヒットした 20080809 の行に
   転記する。
  (sheet1)でふたたび 20080809 が見つかった場合は、
   (sheet2)の前回ヒットしたセルより下の範囲に範囲を限定して
  Match検索を行い、
    20080809 が見つかればその行に転記する、
  見つからなければ 最終行の下に1行 20080809という日付
  ごと、転記する

というような、考え方(あなたが頭の中で判断して暗黙のうちに
やっていること)を明文化するということです。これが、
プログラムを作るときの仕様になります。

4.確認ですが、 20080809 とかは 数値ですか?

【57339】Re:抽出データをコピーし、貼り付けたい...
お礼  みどり  - 08/8/9(土) 13:55 -

引用なし
パスワード
   ▼kanabun さん:
お世話になっております。
私の説明が下手なようで、すみません

↓こちらの件ですが、
>ぼくがあげた別Book(sheet2)レイアウト例では
>  列の構成が (Sheet1)とまったく同じで、
>  kanabun(Sheet2)も、日付列が【D列】にありましたが、
>みどりさんのコードでは (Sheet2)から日付?を検索するとき
>> Set 検査範囲 = Sheets("sheet2").Range(N1:N500)  
>> 行番号 = Application.WorksheetFunction.Match(Cel,検査範囲,0)・・←※ココ
>と、【N列】を参照されてます。

・・大変失礼しました。こちらでの説明用として下記のDに日付がはいっている↓の表を作らせていただきました。列の構成は両シートまったく同じです。が

  A   B    C      D     E     ・・・・・
1 番号 県名   名前    日付    ***・・・・・       
1  1  北海道  佐藤   20080807   ***

・・実際に検索したい日付は(N列)に入っております。
jaka様、kanabun様にご不快な思いをさせてしまい、申し訳ありませんでした。
お詫び申し上げます。

D列に日付データをもっていき
’Set 検査範囲 = Sheets("sheet2").Range(D1:D500)  
’行番号 = Application.WorksheetFunction.Match(Cel,検査範囲,0)
’Range("A" & 行番号).Select

↑ この3つを稼働させないようにしてステップインしていきましたら
 コピー・貼り付けはうまくいきました。(貼り付け場所は指定できないですが)


1.転記前、転記後の(sheet2)のレイアウトのサンプルを見せてください
 お手数をおかけします・

(sheet2/転記前)
  A   B    C   ・E ・・・ N   ・・ P     
1 番号 県名   名前  ・・    日付    ・・・       
1  1  北海道  佐藤  ・・   20080807   ・・・
2  2  青森   伊藤  ・・   20080807   ・・・
3  3  茨城   高橋  ・・   20080808   ・・・
4  4  大阪   青木  ・・   20080809   ・・・
5  ・ 
           ↓

最新版データの20080809でオートフィルタをかけ表示されたものA列からすべてコピーして・・

(sheet2/転記後)

  A   B    C    E  ・・・  N  ・・  P
 番号  県名   名前  ・・      日付    ・・・      
1  1  北海道  佐藤  ・・     20080807   ・・・
2  2  青森   伊藤  ・・     20080807   ・・・
3  3  茨城   高橋  ・・     20080808   ・・・
4  5   福岡   山田  ・・     20080809   ・・・ ←貼付分 
5  10  沖縄   三浦  ・・     20080809   ・・・ ←貼付分

※転記前古いデータの大阪 青木 20080809 の上から貼り付ける。
・ 

>2.抽出元シート(sheet1) AutoFilterではなく、D列を順に条件にあう
> 行を(Sheet2)へコピーするとしたら、
> 手作業で、どうするか、
> どの列をどの列にCopyするとかの 手順を具体化してください。
> 手作業のマクロ記録があればもっといいです。
>3.(sheet2)のどこにコピーするか、
>  (sheet2)の対応する日付が複数あったばあい、手作業で何らか
>  の判断をして行を特定されていると思いますが、どのように
>  判断していますか? それを言葉にしてみてください。

・・作業の前に貼り付けたい最新版の日付(例20080809)の数とsheet2(20080809)の日付を関数カウントで数えておきます。
sheet2の行が足りなかったら行の挿入で増やします。
その際に20080809が始まる両シートの最初・最後の行番号を確認しメモなどします。
最新版側ファイルのsheet1から20080809最初の行(例:A100)に
カーソルを持っていき範囲指定で20080809の最後の行(例:P200)まで
コピーします。
・列の構成が両シート同じなのでsheet2のが20080809の始まる行(例:A90)
から一気に貼り付けます。
オートフィルタがなかったらこのように作業しようと考えております。

>4.確認ですが、 20080809 とかは 数値ですか?
・・・いえ、書式設定の分類は標準になっております。

****

>プログラムを作るときの仕様になります。
>
・・・頭の中で漠然とした考えしかしておらず、情けない思いでいっぱいです。
kanabunさんのアドバイスでまずプログラムを作る始め(姿勢)から全然できていないことに気づきました
ありがとうございます。

【57340】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/9(土) 16:13 -

引用なし
パスワード
   ▼みどり さん:
ごめん。
掲示板、更新してなくて、いままでお返事、見てませんでした。

これから、拝見させていただき、コメントします

【57341】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/9(土) 17:00 -

引用なし
パスワード
   とりあえず気がついたことを。。。

1.
> ・・作業の前に貼り付けたい最新版の日付(例20080809)の数と
> sheet2(20080809)の日付を関数カウントで数えておきます。
→これは COUNTIF関数のことですか?

2.
→抽出する日付は 20080809 のような単一の数値ですか?
 それとも  >= 20080809 のように、ある日付以降全部という
       条件指定ですか?
 それとも、 >= 20080809 かつ <=20081001 というような上限下限
       条件での抽出ですか?
※ 1.からすると、単一の数値のような気はしていますが、
  念のために、確認しておきます。

3.
> sheet2の行が足りなかったら行の挿入で増やします。
→ということは、日付データは連続しているということでしょうか?
(sheet2) のほうの問題です。
ある行から 20080809 の行が50行とか 100行とか連続していると
考えていいでしょうか?
また、そのあとの行に こんどは 200080810 の行が複数行連続して
あると、考えていいですか?

> その際に20080809が始まる両シートの最初・最後の行番号を確認しメモなどします。
> 最新版側ファイルのsheet1から20080809最初の行(例:A100)に
> カーソルを持っていき範囲指定で20080809の最後の行(例:P200)まで
> コピーします。
> ・列の構成が両シート同じなのでsheet2のが20080809の始まる行(例:A90)
> から一気に貼り付けます。
→ もし、日付データが連続してある(ただし、行数は sheet1とsheet2 では
当然、行数が異なる)ならば、おっしゃるような考え方でいいと思います。
★そのとき、(sheet2)のほうで 20080809 のとある行に すでに N列以外にも
  データが書き込まれていたとしても、(sheet1)の抽出データで
  単純に上書きしてしまってよいならば、という条件で。

→(Sheet2)の日付列が 連続してないときは、
 AutoFilterで抽出した範囲を、分割してコピーしなければならないので、 
 AutoFilter方式はあきらめたほうが無難でしょう。

> >4.確認ですが、 20080809 とかは 数値ですか?
> ・・・いえ、書式設定の分類は標準になっております。
わかりました。「標準」のセルに 20080809 のような「数値」が
代入されている、ということですね。(2008/08/09 のような日付が
代入されていて、それを表示形式「yyyymmdd」で表示だけしているという
ことではないのですね)

とりあえずは、(Sheet1)の方は AutoFilter方式でまとめて抽出できそう
ですが、問題は (Sheet2) の転記先のシート構成ですね

【57342】Re:抽出データをコピーし、貼り付けたい...
発言  kanabun  - 08/8/9(土) 19:12 -

引用なし
パスワード
   ▼みどり さん:

> とりあえずは、(Sheet1)の方は AutoFilter方式でまとめて抽出できそう
> ですが、問題は (Sheet2) の転記先のシート構成ですね

AutoFilterで抽出した範囲を、(Sheet2)の最下行にコピーする例です。
つまり、N列に抽出日付の行があっても、上書きはされません。
ただ単に、まとめて抽出できることのテストコードです。

Sub Trial1()
 Dim WS1 As Worksheet
 Dim WS2 As Worksheet
 Dim y2 As Long
 Dim day1 As Double
 
 Set WS1 = Workbooks("返却.xls").Worksheets("Sheet1") '◆実際の Workbook名 に変更
 Set WS2 = Workbooks("転記先.xls").Worksheets("Sheet2")
 
 WS2.Activate
 With WS2.Cells(WS2.Rows.Count, "N").End(xlUp)
   day1 = .Value
   y2 = .Row + 1 '最終行+1
 End With
 'InputBoxで 抽出日付を入力する
 day1 = Application.InputBox("抽出する日付を入力", _
    WS2.Parent.Name, day1, Type:=1)
 If day1 = 0 Then Exit Sub
 
 With WS1.Range("A1").CurrentRegion
   .AutoFilter
   .AutoFilter 14, ">=" & day1  指定の日付より最近の行を抽出する
   If WorksheetFunction.Subtotal(3, .Columns(14)) > 1 Then
     '▼ とりあえず (sheet2)最下行へ コピーする
     Intersect(.Cells, .Cells.Offset(1)).Copy WS2.Cells(y2, 1)
   
   Else
     MsgBox "転記元シートに " & day1 & " のレコードがありません"
   End If
   .AutoFilter
 End With
 
End Sub

【57343】Re:抽出データをコピーし、貼り付けたい...
お礼  みどり  - 08/8/9(土) 20:49 -

引用なし
パスワード
   ▼kanabun さん:
またご連絡が遅くなりすみません・・

>
>1.
>> ・・作業の前に貼り付けたい最新版の日付(例20080809)の数と
>> sheet2(20080809)の日付を関数カウントで数えておきます。
>→これは COUNTIF関数のことですか?

・・・こちらは単純にあいているセルにCOUNT関数で個数を確認します。
>
>2.
>→抽出する日付は 20080809 のような単一の数値ですか?
> それとも  >= 20080809 のように、ある日付以降全部という
>       条件指定ですか?
> それとも、 >= 20080809 かつ <=20081001 というような上限下限
>       条件での抽出ですか?
> ※ 1.からすると、単一の数値のような気はしていますが、
>  念のために、確認しておきます。

・・・私としましてはデータ更新なのである日以降のデータ全部でいいかとは思っております。が、「日付で抽出・貼付できれば・・」といわれ1.のように考えておりました。

>
>3.
>> sheet2の行が足りなかったら行の挿入で増やします。
>→ということは、日付データは連続しているということでしょうか?
> (sheet2) のほうの問題です。
> ある行から 20080809 の行が50行とか 100行とか連続していると
>考えていいでしょうか?
>また、そのあとの行に こんどは 200080810 の行が複数行連続して
>あると、考えていいですか?

・・・はい、こちらは20080809の日付のデータが複数行連続し、次の日付20080810もまた複数行あり・・と考えていただければ。間に別の日付が入るということはありません。

>→ もし、日付データが連続してある(ただし、行数は sheet1とsheet2 では
> 当然、行数が異なる)ならば、おっしゃるような考え方でいいと思います。
> ★そのとき、(sheet2)のほうで 20080809 のとある行に すでに N列以外にも
>  データが書き込まれていたとしても、(sheet1)の抽出データで
>  単純に上書きしてしまってよいならば、という条件で。

・・・はい、こちらも上書きされてしまって問題ないと考えております。

kanabunさん、ご相談にのってくださり本当にありがとうございます。

【57344】Re:抽出データをコピーし、貼り付けたい...
お礼  みどり  - 08/8/9(土) 20:58 -

引用なし
パスワード
   ▼kanabun さん:
お世話になっております。

・・この様なコードを作成下さり、ありがとうございます
あとでじっくりと拝見させていただきまして、(明日はお休みですので)
月曜日に会社にてこちらのコードを動かしてみようと思います、、

色々お手数をおかけ致しました。
取り急ぎご連絡まで・・・

4321 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free