mid и max функции

Программирование на Visual Basic for Applications
Olegk
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 24.11.2004 (Ср) 22:09

mid и max функции

Сообщение Olegk » 28.11.2004 (Вс) 11:47

Здравствуйте коллеги нужна Ваша помощь,
Описываю задачу:
есть лист эксель, в столбце F
есть значения
вида
карта:45824
карта:45820
карта:45823
и тд.
необходимо выяснить в ячейках начишающиеся на слово "Карта:" MAX и MIN значение чисел следующие после слова "Карта:"

Вот код помогите мне с ним:
Sub RenameSheet()
Dim list As Worksheet
For Each list In ActiveWorkbook.Worksheets
list.Activate
maxval = Application.WorksheetFunction.Max(Range("F:F"))
minval = Application.WorksheetFunction.Min(Range("F:F"))
For Row = 1 To 65536
'On Error Resume Next
Set thecell = Range("F1").Offset(Row - 1, 0)
a = Mid(thecell, 1, 6)
If a = "Êàðòà:" And Mid(thecell, 6, 5) = maxval Then
thecell.Activate
MsgBox "Íàéäåíî Ìàõ çíà÷åíèå" & thecell.Value
ActiveSheet.Name = maxval '& "-" & minval
End If
Next Row
Next list
End Sub

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.11.2004 (Вс) 14:17

Макрос не нужен. Это делается одной формулой...

Допустим, рассматриваем диапазон F1:F10. Тогда вводи формулу =макс(значен(правсимв(f1:f10;5))), только при вводе нажимай не Enter, а Ctrl+Shift+Enter.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Olegk
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 24.11.2004 (Ср) 22:09

Сообщение Olegk » 28.11.2004 (Вс) 14:29

так мне макросом и надо,
чтобы он в общей куче макросов валялся

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.11.2004 (Вс) 14:35

И чё люди не хотят юзать формулы...

dim i as long, maxval as long, minval as long, t as long
minval=3e+10
for i=1 to to usedrange.rows.count
t=clng(right$(cells(i,6).value))
if t<minval then minval=t
it t>maxval then maxval=t
next
activesheet.name=cstr(minval) & ":" & cstr(maxval)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Olegk
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 24.11.2004 (Ср) 22:09

Сообщение Olegk » 28.11.2004 (Вс) 14:55

Cэнкс,
только можно получить пояснения насчет этого
minval=3e+10
usedrange.rows.count

:lol:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.11.2004 (Пн) 12:36

Это максимально возможное число.
Я предпочитаю другой способ:
Код: Выделить всё
Dim I As Long, Count As Long, Min, Max
Count = UBound(Data)
Min = Data(1)
Max = Data(2)
For I = 2 To Count
  If Data(I) < Min Then Min = Data(I)
  If Data(I) > Max Then Max = Data(I)
Next I
Lasciate ogni speranza, voi ch'entrate.

Olegk
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 24.11.2004 (Ср) 22:09

Сообщение Olegk » 30.11.2004 (Вт) 5:32

но как сделать поиск МИн/Макс
в ячейках только со словом Карта:


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 77

    TopList