|    | 
     ▼ハト さん: 
 
有難うございます。 
 
大変申し訳ないのですが、 
 
TDate = WS1.Cells(i + 1, "J") 
の所が黄色になって止まってしまいます。 
 
なぜなのかわからないので、 
何度も大変申し訳ございませんが 
教えて頂けますでしょうか。 
 
御忙しい所、申し訳ございません。 
 
 
>▼サン さん: 
>> 
>> A1    B1 C1  D1   E1   F1     G1 
>>顧客コード 顧客名    部署 担当者 売上日  伝票番号  売上金額 
>>1000000  ××  ×× ××  2006/01/01 000000   100,000 
>> 
>> H1   I1   J1     K1    L1  M1 
>>未収金額 備考  入金予定      入金情報 当社担当 UHNAMK 
>>100,000  ××     2006/07/01  ××   ××   ×× 
>> 
>>とエクセルのファイルになっています。 
>> 
>>質問1の回答ですが・・・ 
>>申し訳ございません。 
>>あの数式で年と月を選択してくれるものだと思っていました。 
>> 
>>質問2の回答ですが・・・ 
>>上記の記入で解りますでしょうか。 
>> 
>>何度も何度も申し訳ございません。 
>> 
> 
>どうもSELECT、OFFSET を使っていて混乱なされていたようですね 
>こういうケースではSelectを使わないでやる方法の方が良さそうです 
> 
>サンさんのを元に作ると次のような感じですね 
>お試しください 
>(まだ改善の余地はありそうですが・・・) 
> 
>Sub データ抽出販売() 
>'---------------------------宣言セクション(各項目 最大1000件まで格納する)--- 
>Dim 顧客コード(1000) As String 
>Dim 顧客名(1000) As String 
>Dim 部署(1000) As String 
>Dim 担当者(1000) As String 
>Dim 売上日(1000) As Date 
>Dim 伝票番号(1000) As Single 
>Dim 売上金額(1000) As Single 
>Dim 未収金額(1000) As Single 
>Dim 備考(1000) As String 
>Dim 入金予定(1000) As Date 
>Dim 入金情報(1000) As String 
>Dim 当社担当(1000) As String 
>Dim UHNAMK(1000) As String 
> 
>Dim n As Integer 
>Dim i As Integer 
> 
>Dim mstr As String 
> 
>Dim WS1 As Worksheet 
>Dim WS2 As Worksheet 
>Dim TDate As Date 
>Dim SName As String 
> 
>'-----------------------メッセージボックスの表示------------------------------ 
>  mstr = InputBox("何月分を抽出しますか?(数字のみ)", "抽出月指定") 
> 
>'----------------------該当データを一旦メモリ上に格納する--------------------- 
>  Set WS1 = ThisWorkbook.Worksheets("販売") 
> 
>  n = 0 
>  i = 0 
>   
>  Do While WS1.Cells(i + 1, "A") <> "" '----------A列で空欄がくるまで繰り返す 
>    
>    TDate = WS1.Cells(i + 1, "J") 
>   
>    If Year(TDate) = Year(mstr) And Month(TDate) = Month(mstr) Then '----メッセージボックスで入力した月のデータを格納 
>       
>      顧客コード(n) = WS1.Cells(i + 1, "A").Value 
>      顧客名(n) = WS1.Cells(i + 1, "B").Value 
>      部署(n) = WS1.Cells(i + 1, "C").Value 
>      担当者(n) = WS1.Cells(i + 1, "D").Value 
>      売上日(n) = WS1.Cells(i + 1, "E").Value 
>      伝票番号(n) = WS1.Cells(i + 1, "F").Value 
>      売上金額(n) = WS1.Cells(i + 1, "G").Value 
>      未収金額(n) = WS1.Cells(i + 1, "H").Value 
>      備考(n) = WS1.Cells(i + 1, "I").Value 
>      入金予定(n) = WS1.Cells(i + 1, "J").Value 
>      入金情報(n) = WS1.Cells(i + 1, "K").Value 
>      当社担当(n) = WS1.Cells(i + 1, "L").Value 
>      UHNAMK(n) = WS1.Cells(i + 1, "M").Value 
>    
>      n = n + 1 
>    
>    End If 
>    i = i + 1 
>     
>  Loop 
> 
>'----------------------抽出シート作成---------------------------------------- 
>  
>  Sheets.Add After:=Worksheets(Worksheets.Count) '----------シート挿入 
>  SName = Year(mstr) & "-" & Month(mstr) & "月分" '----------シート名(シート名に『/』は使えない) 
>  ActiveSheet.Name = SName 
>   
>  Set WS2 = ThisWorkbook.Worksheets(SName) 
>  
>  WS2.Range("A1").Value = "顧客コード"     '----------項目名 
>  WS2.Range("B1").Value = "顧客名" 
>  WS2.Range("C1").Value = "部署" 
>  WS2.Range("D1").Value = "担当者" 
>  WS2.Range("E1").Value = "売上日" 
>  WS2.Range("F1").Value = "伝票番号" 
>  WS2.Range("G1").Value = "売上金額" 
>  WS2.Range("H1").Value = "未収金額" 
>  WS2.Range("I1").Value = "備考" 
>  WS2.Range("J1").Value = "入金予定" 
>  WS2.Range("K1").Value = "入金情報" 
>  WS2.Range("L1").Value = "当社担当" 
>  WS2.Range("M1").Value = "UHNAMK" 
> 
>  For i = 0 To n - 1              '-----------メモリ上に格納していたデータを代入 
>     
>    WS2.Cells(i + 2, "A").Value = 顧客コード(i) 
>    WS2.Cells(i + 2, "B").Value = 顧客名(i) 
>    WS2.Cells(i + 2, "C").Value = 部署(i) 
>    WS2.Cells(i + 2, "D").Value = 担当者(i) 
>    WS2.Cells(i + 2, "E").Value = 売上日(i) 
>    WS2.Cells(i + 2, "F").Value = 伝票番号(i) 
>    WS2.Cells(i + 2, "G").Value = 売上金額(i) 
>    WS2.Cells(i + 2, "H").Value = 未収金額(i) 
>    WS2.Cells(i + 2, "I").Value = 備考(i) 
>    WS2.Cells(i + 2, "J").Value = 入金予定(i) 
>    WS2.Cells(i + 2, "K").Value = 入金情報(i) 
>    WS2.Cells(i + 2, "L").Value = 当社担当(i) 
>    WS2.Cells(i + 2, "M").Value = UHNAMK(i) 
> 
>  Next i 
>  
>  WS2.Range("A1").Select 
> 
>  Set WS1 = Nothing 
>  Set WS2 = Nothing 
> 
>End Sub 
 
 | 
     
    
   |