Excel VBA質問箱 IV

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

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


6973 / 13644 ツリー ←次へ | 前へ→

【42024】転記について勉強中です あみん 06/8/29(火) 22:42 質問[未読]
【42025】Re:転記について勉強中です ponpon 06/8/29(火) 23:27 発言[未読]
【42026】Re:転記について勉強中です あみん 06/8/29(火) 23:46 お礼[未読]
【42029】Re:転記について勉強中です ponpon 06/8/30(水) 0:07 発言[未読]

【42024】転記について勉強中です
質問  あみん  - 06/8/29(火) 22:42 -

引用なし
パスワード
   フォルダに10個ほどのファイルがあります。
各ファイルのSheet1のA1:A10には日にち(例:16日)が入っており
B1:B10には金額(例:\12000)が入っています。
もし検索で16日があれば
worksheets("宿泊")、なければworksheets("確認")のA列に
ファイル名を、金額をB列に書いていきたいのです。

書ける部分は書いてみたのですが・・・
どうすればよいのでしょうか?
ご教授おねがいします。

Sub 転記()
  Dim thname As String
  Dim theDir As String
  Dim thebk As Workbook
  Dim flg As Boolean
  
  Application.ScreenUpdating = False
  theDir = "\\cara\コンビ\料金一覧"
  thname = Dir(theDir & "\*.xls")
  
  Do While thname <> ""
  Set thebk = Workbooks.Open(theDir & "\" & thname)
  Call sub転記(thebk, flg)
  thebk.Close savechanges:=False
  thname = Dir
  Loop
End Sub

Sub sub転記()
  Dim XXX As Variant
  
  Set XXX = thebk.Worksheets("Sheet1").Range("A1:A10").Find(what:="16日", LookIn:= Values, lookat:=xlWhole)
  
   
    'もし16日が見つかればファイル名を宿泊シートに、見つからなければ確認     シートに転記する

  
End Sub

【42025】Re:転記について勉強中です
発言  ponpon  - 06/8/29(火) 23:27 -

引用なし
パスワード
   ▼あみん さん:
>フォルダに10個ほどのファイルがあります。
>各ファイルのSheet1のA1:A10には日にち(例:16日)が入っており
>B1:B10には金額(例:\12000)が入っています。
>もし検索で16日があれば
>worksheets("宿泊")、のA列にファイル名を、金額をB列に書いていきたいのです。
ある場合は、16日の横(B列)の金額を書くの?
>なければworksheets("確認")のA列にファイル名を、金額をB列に書いていきたいのです。
の意味ならば、ない場合、何の金額を書けばよいのでしょうか?
それと"16日"は、文字列でしょうか?
それともシリアルの日だけを表示しているのでしょうか?

Sub 転記()
  Dim thname As String
  Dim theDir As String
  Dim thebk As Workbook
  Dim FR As Variant
 
  Application.ScreenUpdating = False
  theDir = "\\cara\コンビ\料金一覧"
  thname = Dir(theDir & "\*.xls")
 
  Do While thname <> ""
    Set thebk = Workbooks.Open(theDir & "\" & thname)
    FR = Application.Match("16日", thebk.Worksheets("Sheet1").Range("A1:A10"), 0)
    If IsError(FR) Then
      With ThisWorkbook.Sheets("確認").Range("A65536").End(xlUp).Offset(1)
      .Value = thebk.Name
      End With
    Else
      With ThisWorkbook.Sheets("宿泊").Range("A65536").End(xlUp).Offset(1)
      .Value = thebk.Name
      .Offset(, 1).Value = thebk.Worksheets("Sheet1").Cells(FR, 2).Value
      End With
    End If
    thebk.Close savechanges:=False
    thname = Dir()
  Loop
  Application.ScreenUpdating = True

End Sub

【42026】Re:転記について勉強中です
お礼  あみん  - 06/8/29(火) 23:46 -

引用なし
パスワード
   ▼ponpon さん:
ありがとうございます。
>>フォルダに10個ほどのファイルがあります。
>>各ファイルのSheet1のA1:A10には日にち(例:16日)が入っており
>>B1:B10には金額(例:\12000)が入っています。
>>もし検索で16日があれば
>>worksheets("宿泊")、のA列にファイル名を、金額をB列に書いていきたいのです。
>ある場合は、16日の横(B列)の金額を書くの?

はい。横に書いていきます。

>>なければworksheets("確認")のA列にファイル名を、金額をB列に書いていきたいのです。
>の意味ならば、ない場合、何の金額を書けばよいのでしょうか?

同じ金額です。
>それと"16日"は、文字列でしょうか?
はい。文字列です。

早速やってみます。

【42029】Re:転記について勉強中です
発言  ponpon  - 06/8/30(水) 0:07 -

引用なし
パスワード
   A B    C
1 12日    \12,000    
2 13日    \8,000    
3 14日    \15,000    
4 15日    \8,500    
5 16日    \12,000    
6 17日    \13,000    
7 18日    \11,000    
8 19日    \10,000    
9 20日    \9,000    
10 21日    \8,000    

こういうのをイメージしていたので違うかも?

>>>なければworksheets("確認")のA列にファイル名を、金額をB列に書いていきたいのです。
>>の意味ならば、ない場合、何の金額を書けばよいのでしょうか?

>同じ金額です。

これって16日がないのにその横の金額はわかりませんよ??

上のようなシートイメージとできあがりのシートイメージを提示すると
レスがつきやすいと思います。

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