|
ふと
制限前に非表示にして、次の処理をすればと思い下記のようにしてみました
Sub a指定行非表示4x() 'D列のセルがグレーなら行非表示
Dim TG As Range
Dim ck As Integer
' Dim myArray() As String
Dim cnt_i As Integer
Dim cnt_j As Integer
'Dim myArray
Dim myArray
cnt_i = 1
cnt_j = 0
ck = ActiveSheet.UsedRange.Rows.Count
Range(Cells(1, 4), Cells(ck, 4)).Select
For Each TG In Selection
If TG.Interior.ColorIndex = 15 Then
myArray = myArray & TG.Row & ":" & TG.Row & ","
'Debug.Print myArray
cnt_j = cnt_j + 1
End If
If cnt_j = 40 Then ',が40毎に処理をする
Debug.Print myArray
Range(Mid(myArray, 1, Len(myArray) - 1)).Select '←3回目でエラー
Range(Mid(myArray, 1, Len(myArray) - 1)).EntireRow.Hidden = True
myArray = ""
cnt_j = 0
End If
cnt_i = cnt_i + 1
Next
'Rows(3).EntireRow.Hidden = True
'Debug.Print myArray '・・・・,178:178,
'Debug.Print Mid(myArray, 1, Len(myArray) - 1) '・・・・,178:178
Range(Mid(myArray, 1, Len(myArray) - 1)).Select '無理やり?
' Rows(myArray(ck)).Select '←型が一致しません
'Rows(myArray(ck)).EntireRow.Hidden = True
Range(Mid(myArray, 1, Len(myArray) - 1)).EntireRow.Hidden = True
End Sub
イミディエイトウインドウは
7:7,8:8,10:10,11:11,13:13,14:14,15:15,16:16,17:17,19:19,20:20,22:22,23:23,
24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,
38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,
50:50,51:51,52:52,
53:53,54:54,56:56,57:57,58:58,59:59,60:60,62:62,64:64,65:65,67:67,68:68,
69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,
81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:92,
93:93,94:94,95:95,96:96,
97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,
107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,
116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,
125:125,126:126,127:127,128:128,129:129,130:130,131:131,132:132,133:133,
134:134,135:135,136:136,
が表示され
'←3回目でエラー
でとまってしまいました
ちなみに、表示する行は、DのセルをWクリックすることで、グレーをはずしています
対象行は1-178で、初期表示対象は、1-6,9,18,21,36,37,55,61,63,66のような感じです
アドバイスよろしくお願い致します
|
|