Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/замена значений в массиве - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
замена значений в массиве
maloy Дата: Среда, 17.10.2012, 15:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

[vba]
Code
Sub Замена()
' Замена Макрос
' Зхамена одного значение на другое
Dim avArr() '

Set avArr = ("A1:A39") 'выбор диапозона значений в исходном листе
Application.AutoCorrect.AddReplacement What:="m", Replacement:="м" ' указываем параметры замены
For i = 1 To 40

If avArr(i, 1) = "m" Then 'проверяем массив на наличие записи с этой буквой
avArr = Replace(avArr, "m", "м") 'Заменяем значение
i = i + 1: ' переходим к следующему элементу массива

Exit For

Else ' в случае не совпадения по условию сразу переходим к следующему элементу массива
i = i + 1:
End If
Next i

End Sub
[/vba]
Отладчик ругается на объявление массива, есть у кого нить соображения по этому поводу?
 
Ответить
Сообщение[vba]
Code
Sub Замена()
' Замена Макрос
' Зхамена одного значение на другое
Dim avArr() '

Set avArr = ("A1:A39") 'выбор диапозона значений в исходном листе
Application.AutoCorrect.AddReplacement What:="m", Replacement:="м" ' указываем параметры замены
For i = 1 To 40

If avArr(i, 1) = "m" Then 'проверяем массив на наличие записи с этой буквой
avArr = Replace(avArr, "m", "м") 'Заменяем значение
i = i + 1: ' переходим к следующему элементу массива

Exit For

Else ' в случае не совпадения по условию сразу переходим к следующему элементу массива
i = i + 1:
End If
Next i

End Sub
[/vba]
Отладчик ругается на объявление массива, есть у кого нить соображения по этому поводу?

Автор - maloy
Дата добавления - 17.10.2012 в 15:57
Hugo Дата: Среда, 17.10.2012, 16:08 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Через set задаётся объект.
Пишите let или вообще просто
avArr = Range("A1:A39") '.Value
Но вообще смысл кода не понял...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЧерез set задаётся объект.
Пишите let или вообще просто
avArr = Range("A1:A39") '.Value
Но вообще смысл кода не понял...

Автор - Hugo
Дата добавления - 17.10.2012 в 16:08
Jhonson Дата: Среда, 17.10.2012, 16:10 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Судя по коду нужно как-то так:
[vba]
Code
Sub Замена()
For Each ccc In Range("A1:A39")
ccc.Value = Replace(ccc.Value, "m", "М")
Next
End Sub
[/vba]
или так:
[vba]
Code
Sub замена()
Range("A1:A39").Replace What:="m", Replacement:="м"
End Sub
[/vba]


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Среда, 17.10.2012, 16:14
 
Ответить
СообщениеСудя по коду нужно как-то так:
[vba]
Code
Sub Замена()
For Each ccc In Range("A1:A39")
ccc.Value = Replace(ccc.Value, "m", "М")
Next
End Sub
[/vba]
или так:
[vba]
Code
Sub замена()
Range("A1:A39").Replace What:="m", Replacement:="м"
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 17.10.2012 в 16:10
maloy Дата: Среда, 17.10.2012, 16:15 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Quote (Hugo)
Но вообще смысл кода не понял...

Смысл заключается в том чтобы заменить иностранные обозначения на русские))))
 
Ответить
Сообщение
Quote (Hugo)
Но вообще смысл кода не понял...

Смысл заключается в том чтобы заменить иностранные обозначения на русские))))

Автор - maloy
Дата добавления - 17.10.2012 в 16:15
maloy Дата: Среда, 17.10.2012, 16:16 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Jhonson , первый вариант подошёл как влитой))))
 
Ответить
СообщениеJhonson , первый вариант подошёл как влитой))))

Автор - maloy
Дата добавления - 17.10.2012 в 16:16
Hugo Дата: Среда, 17.10.2012, 16:17 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Может быть так хотелось:

[vba]
Code
Sub Замена()
' Замена Макрос
' Замена одного значение на другое
       Dim avArr    '

       Set avArr = Range("A1:A39")    '.Value 'выбор диапазона значений в исходном листе
       For i = 1 To avArr.Rows.Count
           If avArr(i) = "m" Then    'проверяем диапазон на наличие записи с этой буквой
               avArr(i) = Replace(avArr(i), "m", "м")    'Заменяем значение
           End If
       Next i

End Sub
[/vba]

Хотя это можно заменить одной строкой:

[vba]
Code
Sub Macro1()
       Range("A1:A39").Replace What:="m", Replacement:="м", LookAt:=xlWhole
End Sub
[/vba]

Эх, писал медленно...
Но у мен я есть LookAt:=xlWhole smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМожет быть так хотелось:

[vba]
Code
Sub Замена()
' Замена Макрос
' Замена одного значение на другое
       Dim avArr    '

       Set avArr = Range("A1:A39")    '.Value 'выбор диапазона значений в исходном листе
       For i = 1 To avArr.Rows.Count
           If avArr(i) = "m" Then    'проверяем диапазон на наличие записи с этой буквой
               avArr(i) = Replace(avArr(i), "m", "м")    'Заменяем значение
           End If
       Next i

End Sub
[/vba]

Хотя это можно заменить одной строкой:

[vba]
Code
Sub Macro1()
       Range("A1:A39").Replace What:="m", Replacement:="м", LookAt:=xlWhole
End Sub
[/vba]

Эх, писал медленно...
Но у мен я есть LookAt:=xlWhole smile

Автор - Hugo
Дата добавления - 17.10.2012 в 16:17
maloy Дата: Среда, 17.10.2012, 16:19 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Sub Macro1()
Range("A1:A39").Replace What:="m", Replacement:="м", LookAt:=xlWhole
End Sub

Таким вариантом у меня не меняет ни фига(((( А вот то что Джонсон предложил работает на ура, хотя работоспособность вашего кода подвергать сомнению, тоже не правильно, а вдруг он только у меня не работает)))
 
Ответить
СообщениеSub Macro1()
Range("A1:A39").Replace What:="m", Replacement:="м", LookAt:=xlWhole
End Sub

Таким вариантом у меня не меняет ни фига(((( А вот то что Джонсон предложил работает на ура, хотя работоспособность вашего кода подвергать сомнению, тоже не правильно, а вдруг он только у меня не работает)))

Автор - maloy
Дата добавления - 17.10.2012 в 16:19
Hugo Дата: Среда, 17.10.2012, 16:29 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Мой "маленький" код меняет значение в том случае, если оно в ячейке одно (опция "ячейка целиком").
Как в общем и код Jhonson'а, но у меня это указано явно.
Т.е. работать они должны одинаково.
Неужели там есть неизвестные нюансы?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМой "маленький" код меняет значение в том случае, если оно в ячейке одно (опция "ячейка целиком").
Как в общем и код Jhonson'а, но у меня это указано явно.
Т.е. работать они должны одинаково.
Неужели там есть неизвестные нюансы?

Автор - Hugo
Дата добавления - 17.10.2012 в 16:29
maloy Дата: Среда, 17.10.2012, 16:31 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Quote (Hugo)
Неужели там есть неизвестные нюансы?

Ну если честно то есть.........
 
Ответить
Сообщение
Quote (Hugo)
Неужели там есть неизвестные нюансы?

Ну если честно то есть.........

Автор - maloy
Дата добавления - 17.10.2012 в 16:31
Hugo Дата: Среда, 17.10.2012, 16:47 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Вы точно уверены, что эти коды работают не одинаково?
И какие тогда нюансы влияют? В самом деле, интересно.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеВы точно уверены, что эти коды работают не одинаково?
И какие тогда нюансы влияют? В самом деле, интересно.

Автор - Hugo
Дата добавления - 17.10.2012 в 16:47
maloy Дата: Среда, 17.10.2012, 16:53 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Понимаете, у меня код макроса, достаточно обширный и его задача не сводится к одной простой замене значений, просто на этом пункте я впал в ступор..... А если по существу. То ВАШ вариант у меня заработал после того как я его прописал в самый конец кода, а первый вариант работает внутри кода макроса на копирование данных из одного файла в другой. Хотя в свете своей некомпетентности в данном вопросе, я могу и ошибаться......
 
Ответить
СообщениеПонимаете, у меня код макроса, достаточно обширный и его задача не сводится к одной простой замене значений, просто на этом пункте я впал в ступор..... А если по существу. То ВАШ вариант у меня заработал после того как я его прописал в самый конец кода, а первый вариант работает внутри кода макроса на копирование данных из одного файла в другой. Хотя в свете своей некомпетентности в данном вопросе, я могу и ошибаться......

Автор - maloy
Дата добавления - 17.10.2012 в 16:53
maloy Дата: Среда, 17.10.2012, 17:45 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Ещё один вопрос......
прописываю в теле макрос
dim с as string
с = Val(Inputbox("введите число"))
Но переменная 'с' как была нулевой так и остаётся. подскажите почему?
 
Ответить
СообщениеЕщё один вопрос......
прописываю в теле макрос
dim с as string
с = Val(Inputbox("введите число"))
Но переменная 'с' как была нулевой так и остаётся. подскажите почему?

Автор - maloy
Дата добавления - 17.10.2012 в 17:45
maloy Дата: Среда, 17.10.2012, 17:47 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

А всё разобрался...... наверное надо просто отдохнуть, а то туплю уже в самых простых вопросах))))
 
Ответить
СообщениеА всё разобрался...... наверное надо просто отдохнуть, а то туплю уже в самых простых вопросах))))

Автор - maloy
Дата добавления - 17.10.2012 в 17:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!