Задачки

  • From: Roman Vorushin <roman@xxxxxxxxxxxxxxx>
  • To: adena@xxxxxxx
  • Date: Mon, 8 Nov 2004 10:40:32 +0600

Привет!

Держи свои задачки, лентяйка!

И еще - на mail.ru упорно не ходят сообщения с freelists.org. Заведите
себе ящики в каком-нибудь другом месте специально для форума и
сделайте редирект и всё будет в ажуре.

>
Sub DeleteBraces()
'Берем строку из ячейки А1 и записываем в ячейку А2 ее значение за исключением 
символов
'заключенных в фигурные скобки (скобки тоже исключаются)

Dim source As String 'Это у нас будет исходная строка
Dim target As String 'А это будет результирующая

'Берем строку из ячейки А1
source = Worksheets("Лист1").Cells(1, 1).Value

'Собственно мерлезонский балет
Dim insideBraces As Boolean
insideBraces = False
For i = 1 To Len(source)
    If Mid(source, i, 1) = "{" Then
        insideBraces = True
    End If
    If Not insideBraces Then
        target = target + Mid(source, i, 1)
    ElseIf Mid(source, i, 1) = "}" Then
        insideBraces = False
    End If
Next i

'Записываем результат в A2
Worksheets("Лист1").Cells(2, 1).Value = target
End Sub

Sub DeleteBraces2() 'С обработкой вложенных скобок
'Берем строку из ячейки А1 и записываем в ячейку А2 ее значение за исключением 
символов
'заключенных в фигурные скобки (скобки тоже исключаются)
'Внимание! Легких путей мы не ищем, так что вложенные скобки мы тоже 
обработаем!!!

Dim source As String 'Это у нас будет исходная строка
Dim target As String 'А это будет результирующая

'Берем строку из ячейки А1
source = Worksheets("Лист1").Cells(1, 1).Value

'Собственно мерлезонский балет
Dim insideBraces As Integer 'Тут то собака и порылась - отличие от первой ф-ии
insideBraces = 0
For i = 1 To Len(source)
    If Mid(source, i, 1) = "{" Then
        insideBraces = insideBraces + 1
    End If
    If insideBraces = 0 Then
        target = target + Mid(source, i, 1)
    ElseIf Mid(source, i, 1) = "}" Then
        insideBraces = insideBraces - 1
        If insideBraces < 0 Then insideBraces = 0 'Обрабатываем случай, когда 
закр. скобка стоит раньше
    End If
Next i

'Записываем результат в A2
Worksheets("Лист1").Cells(2, 1).Value = target
End Sub

Sub SingleDimensionArrays() 'Одномерные массивы
Dim x(50) As Double
Dim y(50) As Double
Dim z(50) As Double

For i = 1 To 50
    x(i) = i 'x от 1 до 50
    y(i) = Worksheets("Лист1").Cells(9 + i, 3).Value 'А элементы массива y 
берем из листа, C10:C59
    z(i) = (x(i) - 50) - y(i)
    Worksheets("Лист1").Cells(9 + i, 4).Value = z(i) 'Записываем в D10:59
Next i
End Sub
>

Что это такое?
Это файл Excel с написанными скриптами
на VBA - Visual Basic for Applications

Как выполнить скрипты?
Сервис - Макрос - Редактор Visual Basic
Там выбрать интересующую ф-ию и нажать F5

Как работают ф-ии?
Там есть комментарии, разберетесь


Все это написал Роман Ворушин для Алины Гребенниковой

8 ноября 2004 г.

-- 
С уважением, Ворушин Роман                     roman@xxxxxxxxxxxxxxx

Other related posts: