Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Chip&Dale
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 25
1

Строки: в словах, записанных в чётные ячейки, выбросить чётные символы

26.10.2010, 19:55. Просмотров 1199. Ответов 5
Метки нет (Все метки)

стыдно просить помощи с такими вопросами, но ничего не могу поделать. я понимаю логику, а написать не могу. уже просто закипаю. в словах, записанных в чётные ячейки, выбросить чётные символы, в словах, записанных в нечётные ячейки, выбросить нечётные символы. у меня уже в голове все пермешалось...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 19:55
Ответы с готовыми решениями:

Поменять местами чётные и нечётные символы в каждом слове
Поменять местами чётные и нечётные символы в каждом слове. Если слово состоит...

В матрице поменять местами чётные и нечётные строки
Помогите пожалуйста. Совсем нету времени в VB разбираться. Задание: В...

Выделить чётные строки в пронумерованной таблице в Word
Помогите, пожалуйста, написать макрос, который бы выделял чётные строки в...

Чётные и нечётные элементы в массиве
Дан массив А(n). Сколько в нём чётных и нечётных элементов, каких элементов...

Как удалить чётные столбцы в матрице
Помогите пожалуйста написать программу в VBA которая удаляет чётные столбцы в...

5
gaw
6633 / 1500 / 169
Регистрация: 09.01.2010
Сообщений: 4,274
26.10.2010, 20:21 2
как то так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer
i = 1: j = 1
Do While Cells(i, j) <> ""
  Do While Cells(i, j) <> ""
  
  If (i + j) Mod 2 = 0 Then
  Cells(i, j) = tmp(1, CStr(Cells(i, j)))
  Else
  Cells(i, j) = tmp(2, CStr(Cells(i, j))) 
  End If
    i = i + 1
  Loop
i = 1
j = j + 1
Loop
End Sub
Function tmp(k As Integer, c As String) As String
    Dim p As Integer
    tmp = ""
    For p = k To Len(c) Step 2
    tmp = tmp & Mid(c, p, 1)
    Next p
End Function
0
Chip&Dale
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 25
26.10.2010, 20:50  [ТС] 3
Я извиняюсь, а что значит tmp(1, CStr(Cells(i, j))) ?
0
gaw
6633 / 1500 / 169
Регистрация: 09.01.2010
Сообщений: 4,274
26.10.2010, 21:30 4
обращение к функции tmp /строки 18-24/ с параметрами: к=1 для нечетных и к=2 для четных выдаляемых символов; и собственно строкой CStr(Cells(i, j))
это то же самое, что написать, например, так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, tmp As String
i = 1: j = 1
Do While Cells(i, j) <> ""
  Do While Cells(i, j) <> ""
  tmp = ""
  If (i + j) Mod 2 = 0 Then
      For p = 1 To Len(CStr(Cells(i, j))) Step 2
          tmp = tmp & Mid(CStr(Cells(i, j)), p, 1)
      Next p
  Else
      For p = 2 To Len(CStr(Cells(i, j))) Step 2
          tmp = tmp & Mid(CStr(Cells(i, j)), p, 1)
      Next p
  End If
  Cells(i, j) = tmp
    i = i + 1
  Loop
i = 1
j = j + 1
Loop
End Sub
0
Chip&Dale
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 25
27.10.2010, 00:11  [ТС] 5
Но как же (CStr(Cells(i, j)) если в этой функции нужно задавать с какого элемента мы начинаем, где и что мы ищем.

Добавлено через 49 секунд
ой, перепутал с InStr! Все, ясно

Добавлено через 2 часа 14 минут
а еще можно вопрос - не сталкивался со Step 2. что это означает?
0
Alex77755
10780 / 3345 / 561
Регистрация: 13.02.2009
Сообщений: 9,826
27.10.2010, 00:21 6
Шаг в цикле
Visual Basic
1
For i = 1 to 100 Step 2
i = 1,3,5,7
0
27.10.2010, 00:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 00:21

Найти чётные числа, делящиеся без остатка на сумму своих цифр из заданного с клавиатуры диапазона
Private Sub Command1_Click() Dim a As Long, b As Long, c As Long Dim i As...

Вытащить из ячейки символы
подскажи пожалуйста, как вытащить символы (буквы и пр.) после цифр из ячейки?...

Определить, какие два числа (чётные или не чётные) были введены последними и какова их сумма
помогите задачу сделать в паскале не пойму как отделить последние введёные два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru