Excel VBA質問箱 IV

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

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


14612 / 76734 ←次へ | 前へ→

【67611】Re:1つの条件で表示
発言  kanabun  - 10/12/18(土) 0:23 -

引用なし
パスワード
   ▼miyama さん:

>シート2の、s6セルに、企業名を記入したら、
その隣においた図形のボタンに登録した「btn統合_Click」マクロを
実行する例です。

'--------------------------------------- 標準モジュール
Option Explicit

Sub btn統合_Click()
 Dim WS1 As Worksheet
 Dim WS2 As Worksheet
 Dim r As Range
 Dim i As Long, k As Long, n As Long
 Dim dic As Object
 Dim v
 
 Set WS1 = Worksheets("Sheet1")
 Set WS2 = Worksheets("Sheet2")
 ' Sheet1 表範囲にオートフィルタをかけ、必要項目をSheet2に抽出
 With WS1.Range("B:B")
   Set r = Excel.Range(.Item(1), .Item(.Count).End(xlUp))
 End With
 WS1.AutoFilterMode = False
 r.AutoFilter 1, WS2.Range("S6").Value
 If r.SpecialCells(xlVisible).Count > 1 Then
   WS2.Range("A1").CurrentRegion.ClearContents
   r.Offset(, 1).Resize(, 3).Copy WS2.Range("A1")
 End If
 r.AutoFilter
 
 '統合
 Set dic = CreateObject("Scripting.Dictionary")
 With WS2.Range("A1").CurrentRegion
   With Intersect(.Cells, .Offset(1))
     v = .Value
     .ClearContents
     For i = 1 To UBound(v)
      If Not dic.Exists(v(i, 1)) Then
        k = k + 1
        dic(v(i, 1)) = k
        v(k, 1) = v(i, 1)
        v(k, 2) = v(i, 2)
        v(k, 3) = v(i, 3)
      Else
        n = dic(v(i, 1))
        v(n, 3) = v(n, 3) + v(i, 3)
      End If
     Next
     .Resize(k).Value = v
   End With
   .Sort Key1:=.Columns(1), Header:=xlYes
 End With
 Set dic = Nothing
 
End Sub

2 hits

【67604】1つの条件で表示 miyama 10/12/17(金) 14:39 質問
【67606】Re:1つの条件で表示 Jaka 10/12/17(金) 15:19 発言
【67607】Re:1つの条件で表示 UO3 10/12/17(金) 15:47 回答
【67616】Re:1つの条件で表示 miyama 10/12/18(土) 11:41 発言
【67619】Re:1つの条件で表示 UO3 10/12/18(土) 15:52 回答
【67611】Re:1つの条件で表示 kanabun 10/12/18(土) 0:23 発言
【67617】Re:1つの条件で表示 miyama 10/12/18(土) 11:51 発言
【67618】Re:1つの条件で表示 こたつねこ 10/12/18(土) 14:30 回答
【67630】Re:1つの条件で表示 Hirofumi 10/12/19(日) 18:33 回答
【68005】Re:1つの条件で表示 miyama 11/1/25(火) 9:44 お礼

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