Excel VBA質問箱 IV

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

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


68989 / 76738 ←次へ | 前へ→

【12269】Re:Caseに続く部分を自動的に持ってこれるか?
回答  こうちゃん E-MAIL  - 04/3/29(月) 11:54 -

引用なし
パスワード
   まだ初心者さん、こんにちは

>週末に考えましたがまだ問題が解決できません。
>dの値ごとのシートに集約したいのですが
>dの数だけシートが出きてしまいます。
>どうすれば解決できるでしょうか?

前回提示したコードの動作確認はしたのですか?
その結果は?
コードを見ると私の提示したコードがベースになっているようですが、そこまではOKですか?
そのうえでの質問かどうかで、回答も変わります。
まだ初心者さんからもレスポンスがないと回答する側としては、回答しづらいばかりでなく、なかには気分を害する方もありますので(私もすこ〜し(--メ)、です(^^;))、気をつけてくださいね。

さて、コードですが・・

> Sub test()
>  Dim i As Long
>  Dim A As Integer
>  Dim d As String
>  Dim ws1 As Worksheet
>  Dim ws2 As Worksheet
>  Dim wsFlg As Boolean
> 
>  Set ws1 = Worksheets("一覧")
>   For i = 2 To ws1.Range("A65535").End(xlUp).Row
>    d = ws1.Cells(i, 10).Value
>    '9でなく10でした。単純間違いです。
>    wsFlg = False
>    For Each ws2 In Worksheets
>      If ws2.Name = d Then
>        wsFlg = True
>        Exit For
>      End If
>   
>    If Not wsFlg Then
>   ' Addでなく書式の入ったシートaをコピーすることにしました。
>   ' Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = d
>    Worksheets("a").Copy after:=Worksheets(Worksheets.Count)

ここでシート名を変更していないようですね?
そのためシートが既定のシート名で追加されます(ここでは"a(3)"とか・・)ので、シート名存在チェックにかからないため、必ずる追加されてしまいます。
ここに、シート名を変数d と同じように変更する処理をいれましょう。

>    ' Aの処理を直しました。8行目に(i,9)(i,10)を、_
>     13行目以降に(i,4)(i,5)…をいれます。
>    A = 13
Aの初期化をシート作成時に行うと希望の動作にならない場合があるかもしれません。
データの並びがd(営業所名)の順番でならびかえられていればいいのですが、ランダムになっている場合、すでに作成されているシートに書き込む場合、予期しない位置に書き込むことが考えられます。
     Else
シート作成時以外はすでに13行目以降にかきこまれていますんので、現在の買い込み位置の最大を検索するようにしたらいかがでしょうか・・
      A = Worksheets(d).Range("A65536").End(xlUp).Row + 1
>    End If
>
>    ActiveSheet.Cells(8, 2).Value = ws1.Cells(i, 9).Value
>    ActiveSheet.Cells(8, 5).Value = ws1.Cells(i, 10).Value
>    ActiveSheet.Cells(A, 1).Value = ws1.Cells(i, 4).Value
>    ActiveSheet.Cells(A, 2).Value = ws1.Cells(i, 5).Value
>    ActiveSheet.Cells(A, 3).Value = ws1.Cells(i, 6).Value
>    ActiveSheet.Cells(A, 4).Value = ws1.Cells(i, 7).Value
>    ActiveSheet.Cells(A, 5).Value = ws1.Cells(i, 11).Value
>    ActiveSheet.Cells(A, 11).Value = ws1.Cells(i, 12).Value
>    ActiveSheet.Cells(A, 11).Value = ws1.Cells(i, 12).Value
>    A = A + 1
>    Next
>  Next
>  End Sub
0 hits

【12095】Caseに続く部分を自動的に持ってこれるか? まだ初心者 04/3/23(火) 21:18 質問
【12122】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/24(水) 14:28 回答
【12199】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/26(金) 15:02 質問
【12200】Re:Caseに続く部分を自動的に持ってこれる... つん 04/3/26(金) 15:11 発言
【12215】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/26(金) 17:41 回答
【12216】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/26(金) 19:14 質問
【12234】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/27(土) 14:52 回答
【12263】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/29(月) 10:25 質問
【12269】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/29(月) 11:54 回答
【12275】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/29(月) 13:49 質問
【12276】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/29(月) 14:00 回答
【12277】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/29(月) 15:28 質問
【12281】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/29(月) 16:36 回答
【12299】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/30(火) 8:42 質問
【12305】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/30(火) 10:52 発言
【12306】Re:Caseに続く部分を自動的に持ってこれる... Asaki 04/3/30(火) 11:04 回答
【12316】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/30(火) 14:41 質問
【12318】Re:Caseに続く部分を自動的に持ってこれる... こうちゃん 04/3/30(火) 15:23 発言
【12320】Re:Caseに続く部分を自動的に持ってこれる... まだ初心者 04/3/30(火) 16:29 質問
【12322】もう少しわかるようにお願いします。 こうちゃん 04/3/30(火) 16:42 発言
【12323】深くなったのでこちらに返信お願いします。 こうちゃん 04/3/30(火) 16:44 発言
【12324】Re:深くなったのでこちらに返信お願いしま... Asaki 04/3/30(火) 16:56 回答
【12325】Re:深くなったのでこちらに返信お願いしま... まだ初心者 04/3/30(火) 17:55 質問
【12327】Re:深くなったのでこちらに返信お願いしま... Asaki 04/3/30(火) 20:04 回答
【12337】Re:深くなったのでこちらに返信お願いしま... まだ初心者 04/3/31(水) 10:17 お礼
【12338】おつかれさまでした^^ こうちゃん 04/3/31(水) 10:45 発言
【12339】Re:おつかれさまでした^^ Asaki 04/3/31(水) 10:58 発言

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