Excel VBA質問箱 IV

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

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


22316 / 76734 ←次へ | 前へ→

【59801】Re:2bookの文字列を比較する
発言  みみん  - 09/1/8(木) 21:50 -

引用なし
パスワード
   ▼n さん:
ご返信ありがとうございます。

>>Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Valueで、
>>インデックスが有効範囲ではありませんというエラーがでます。
>Worksheets("Sheet1")の親Bookを明示していないからでしょう。
>そのままだとActiveWorkbookのWorksheets("Sheet1")を指定しています。
>つまり
>>FL2 = "C:・・・\Desktop\新.xlsx"
>これがActiveWorkbookになっています。
>>Lastrow = ThisWorkbook.Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row + 1
>ここで明示しているのと同じようにしてみてください。
その通りでした。
thisworkbook.Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Value
に書き換えるとできました。

>
>ただ、
>>For i = 1 To Lastrow
>>  Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Value
>>  Worksheets("Sheet1").Cells(Lastrow, 2) = FR.Offset(, 1).Value
>>  Worksheets("Sheet1").Cells(Lastrow, 3) = "変更なし"
>>Next
>ここでどういう動作をしているか理解されてますか?
>>For i = 1 To Lastrow
>>Next
>これは不要ですよね?
確かに不要です・・・

>
>
>そもそも、Findメソッドを使ってLoopしなくても良いと思います。
>新.xlsx から まとめ.xlsx へ全データをコピーして、
>作業列にMatch関数を使って 旧.xlsx を参照して、
>あれば"変更なし"、無ければ"追加"で良くないですか?

ここではC列だけで書かせて頂きましたが、
実際はあと3列の文字列が同じかを条件にしています。

If Not FR Is Nothing Thenのあとに
If FR.Offset(, 1).Value = CL1.Offset(, 1).Value Then
のような条件が3つ続いています。
(旧fileから新fileに変更され、担当者が同じかどうかの確認のためなど)
なのでFindを使って書いていました。

説明不足で申し訳ありませんでした。


       
3 hits

【59795】2bookの文字列を比較する みみん 09/1/8(木) 21:02 質問
【59797】Re:2bookの文字列を比較する かみちゃん 09/1/8(木) 21:13 発言
【59798】Re:2bookの文字列を比較する みみん 09/1/8(木) 21:29 発言
【59799】Re:2bookの文字列を比較する n 09/1/8(木) 21:29 発言
【59801】Re:2bookの文字列を比較する みみん 09/1/8(木) 21:50 発言
【59802】Re:2bookの文字列を比較する Hirofumi 09/1/8(木) 22:47 発言
【59804】Re:2bookの文字列を比較する みみん 09/1/9(金) 3:50 お礼

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