![]() |
Code ignoring filtered (visible) tasks.
mycat is a string in my I column or column 9 (defined as MyCategoryCol)
Export_Info(mycat as string) { ....misc variables. ' Apply my filter. Selection.AutoFilter Field:=MyCategoryCol, Criteria1:=mycat, Operator:=xlAnd ' Count the number of filtered tasks. column_counter = Application.WorksheetFunction.Subtotal(3, Range("I:I")) For i = 1 To column_counter ' The QUESTION buff = Selection.Cells(i, MyQuestionCol) ConBuff = "" For j = 1 To Len(buff) If InfFont(Asc(Mid(buff, j, 1))) = 255 Then MsgBox "Unrecognised characters in Question at line " & i & ", character # " & j & " (" & Chr(InfFont(Asc(Mid(buff, j, 1)))) & "), table entry " & Asc(Mid(buff, j, 1)) ConBuff = ConBuff + "?" Else ConBuff = ConBuff + Chr(InfFont(Asc(Mid(buff, j, 1)))) End If Next j Print #hfile, ConBuff next i .... many more sections of data, but they are all basically the same as this. } THE PROBLEM: When I go through this loop, i always get the cells from the top, even ones that should be filtered. I don't know why this happens. When I filter by "Kids" for example, the 217 rows that have info about the "kids" even though the actual row is at like 21,000 - I start getting entries from row 1, which is usually a different column like "History" |
Code ignoring filtered (visible) tasks.
I am not sure you want to use column_counter on your filtered list because
your loop is going from row to row. If column_counter =100 then your loop will evaluate rows(1:100). Your last filtered item may be on row 1900! It may be best to loop the entire list and check each row's Hidden property. For i = 1 to LastRow If Rows(i).Hidden = False Then 'Do your code Else End If Next i Mike F "Finius Eetch" wrote in message ... mycat is a string in my I column or column 9 (defined as MyCategoryCol) Export_Info(mycat as string) { ...misc variables. ' Apply my filter. Selection.AutoFilter Field:=MyCategoryCol, Criteria1:=mycat, Operator:=xlAnd ' Count the number of filtered tasks. column_counter = Application.WorksheetFunction.Subtotal(3, Range("I:I")) For i = 1 To column_counter ' The QUESTION buff = Selection.Cells(i, MyQuestionCol) ConBuff = "" For j = 1 To Len(buff) If InfFont(Asc(Mid(buff, j, 1))) = 255 Then MsgBox "Unrecognised characters in Question at line " & i & ", character # " & j & " (" & Chr(InfFont(Asc(Mid(buff, j, 1)))) & "), table entry " & Asc(Mid(buff, j, 1)) ConBuff = ConBuff + "?" Else ConBuff = ConBuff + Chr(InfFont(Asc(Mid(buff, j, 1)))) End If Next j Print #hfile, ConBuff next i ... many more sections of data, but they are all basically the same as this. } THE PROBLEM: When I go through this loop, i always get the cells from the top, even ones that should be filtered. I don't know why this happens. When I filter by "Kids" for example, the 217 rows that have info about the "kids" even though the actual row is at like 21,000 - I start getting entries from row 1, which is usually a different column like "History" |
All times are GMT +1. The time now is 12:14 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com