teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2019/12/11 04:00

投稿

KazuSaka
KazuSaka

スコア640

answer CHANGED
@@ -1,3 +1,4 @@
1
+ **※初期回答から少し修正しました.回答修正箇所は【回答修正】とつけました.**
1
2
  ###回答
2
3
  プログラム修正させて頂きました。
3
4
  お困りの以下の2点を追加しました。
@@ -15,7 +16,8 @@
15
16
  1.商品名と期間で抽出候補を抽出
16
17
  2.抽出候補から[抽出][削除]の条件で絞り込んで、終了
17
18
  2-1.[抽出][削除]が未入力の場合、1の条件に合うものを全て出力
19
+ 2-2.[抽出][削除]どちらか一方入力の場合、1の条件からさらに絞り込み出力【回答修正】
18
- 2-.[抽出][削除]が両方入力されている場合は、[抽出]のみ条件で出力
20
+ 2-.[抽出][削除]が両方入力されている場合は、[抽出]のみ条件で出力
19
21
  ([抽出][削除]両方入力することはないと思いますが・・・)
20
22
 
21
23
  [抽出・削除]項目の考え方が正しいか分かりませんが、間違ってたら教えてください。
@@ -44,8 +46,10 @@
44
46
  Dim WF As Object
45
47
  Set WF = WorksheetFunction
46
48
  Set dstSheet = ThisWorkbook.Worksheets("抽出条件")
47
- If Not Evaluate("=ISREF(抽出先シート!A1)") Then Sheets.Add.Name = "抽出先シート"
49
+ 'If Not Evaluate("=ISREF(抽出先シート!A1)") Then Sheets.Add.Name = "抽出先シート" '//[削除]【回答修正】
48
50
  'Set Ns = Worksheets("抽出先シート") '//[削除]
51
+ '//F4で指定したシートがない場合は作成【回答修正】
52
+ If Not Evaluate("=ISREF(" + dstSheet.Range("F4").Value + "!A1)") Then Sheets.Add.Name = dstSheet.Range("F4").Value '//[追加]
49
53
  Set Ns = Worksheets(dstSheet.Range("F4").Value) '//[追加]抽出先シートはセルF4の値に基づく
50
54
 
51
55
  Ns.UsedRange.Clear '//抽出先シートのデータを削除