Функция на Vba, кто знает Vba обязательно загляните

Тема в разделе "Visual Basic", создана пользователем Artexoid, 28 фев 2007.

  1. Artexoid

    Artexoid Гость

    Здравствуйте.

    Честно говоря никогда не думал что буду капаться в бейсике. Нужда заставила! В общем к сути…

    Мне нужно полное описание этой функции (что, где происходит). Хот VB я не знаю, но общие представления имею, интуитивно, основываясь на знаниях других языков. Но общих представлений все-таки мало т.к. я собираюсь реализовать алгоритм в PHP. Мне нужно знать точный алгоритм описанный здесь.

    Если кто может, пожалуйста, опишите, очень нужно!

    Заранее огромное спасибо!!!!

    Код (Text):
    Private Sub FindAnalog()
    Dim c1 As Range
    Dim i As Integer
    Dim r As Range
    Dim r1 As Range
    Dim Str As String
    Dim str1 As String

    Worksheets(1).Select
    i = ActiveCell.Row
    Set SR = ActiveCell

    If (i > 7) Then
    Str = Range("E" + CStr(i)).Cells(1, 1).Value
    If (Str <> "") Then
    Str = Split(Str, "/")(0)
    str1 = Split(Str, " ")(UBound(Split(Str, " ")))
    If Len(str1) < 3 Then Str = LTrim(Left(Str, Len(Str) - Len(str1)))
    If (Str <> "") Then
    str1 = Split(Str, " ")(0)
    If Len(str1) < 3 Then Str = LTrim(Right(Str, Len(Str) - Len(str1)))
    End If
    If (Str <> "") Then
    Str = "*" + Str + "*"
    Str = MyReplace(Str, " ", "*")
    Worksheets(1).Range("A1:M20000").AutoFilter 5, Str
    Worksheets(1).Range("A8:M20000").Sort Range("E8:E20000"), xlAscending
    ActiveWindow.ScrollRow = 3
    CommandButton2.Caption = "Сбросить фильтр"
    End If
    End If
    End If
    End Sub
    Скрипт взят из Excel...
     
  2. DIvanmgn

    DIvanmgn Гость

    Private Sub FindAnalog()
    Dim c1 As Range 'объявление переменных
    Dim i As Integer 'объявление переменных тип целое число
    Dim r As Range 'объявление переменных
    Dim r1 As Range 'объявление переменных тип диапазон ячеек (вроде бы.. не уверен)
    Dim Str As String 'объявление переменных тип строка
    Dim str1 As String 'объявление переменных тип строка

    Worksheets(1).Select 'выделяем первый лист в книге
    i = ActiveCell.Row 'присваеваем активные (выделенные) строки
    Set SR = ActiveCell 'не знаю что за строка

    If (i > 7) Then 'если количество активных строк больше 7 то
    Str = Range("E" + CStr(i)).Cells(1, 1).Value 'присваиваем значение ячейки из столбца "Е" и строки i
    If (Str <> "") Then 'если ячейка не пустая то
    Str = Split(Str, "/")(0) ' присваиваем Str все из стр что до знака "/"
    str1 = Split(Str, " ")(UBound(Split(Str, " "))) ' присваиваем Str все из стр что до пробела " "
    If Len(str1) < 3 Then Str = LTrim(Left(Str, Len(Str) - Len(str1))) 'если длина строки меньше 3 то отщипываем у Str слева длину str1 и отщипанный кусок присваиваем Str
    If (Str <> "") Then 'если Str не пустая строка то
    str1 = Split(Str, " ")(0) 'присваиваем str1 все из Str что находится ддо пробела " "
    If Len(str1) < 3 Then Str = LTrim(Right(Str, Len(Str) - Len(str1))) 'если длина str1 меньше 3 то присваиваем Str левую часть длиной str1
    End If
    If (Str <> "") Then 'если Str не пустая строка то
    Str = "*" + Str + "*" 'добавляем к Str слева и справа по звезде
    Str = MyReplace(Str, " ", "*") 'заменяем пробелы звездами
    Worksheets(1).Range("A1:M20000").AutoFilter 5, Str 'используем полученное Str в качестве фильтра для диапазона "A1:M20000"
    Worksheets(1).Range("A8:M20000").Sort Range("E8:E20000"), xlAscending 'сортируем
    ActiveWindow.ScrollRow = 3 'двигаем скрол на нужную позицию
    CommandButton2.Caption = "Сбросить фильтр" 'отображаем на кнопке надпись
    End If
    End If
    End If
    End Sub
     
  3. Artexoid

    Artexoid Гость

    Для: DIvanmgn

    Большое спасибо.. :rolleyes:
     
  4. Tanya

    Tanya Гость

    ' это номер первой выделенной строки

    ' назначить переменную-диапазон SR равной выделенной ячейке
    ' но на самом деле лишняя в этой программе переменная, ни для чего
    ' как впрочем и с1, r, r1

    ' если первая выделенная строка больше 7 (или ниже седьмой строки :) )

    ' присваиваем Str1 все из стр что после последнего пробела " "

    ' и убераем все пробелы слева LTrim

    ' если длина str1<3 то
    ' сначала извлекаем из Str (Len(Str) - Len(Str1) = длина Str - длина str1) символов
    ' затем отбрасываем все левые пробелы
     
Загрузка...

Поделиться этой страницей