|
Кто силен в VBA, Помогите. | ☑ | ||
---|---|---|---|---|
0
Balabass
23.08.13
✎
10:14
|
на листе есть сотня объектов типа выпадающего списка
http://screencast.com/t/SSqNDpuRWgb У каждого объекта есть 2 значения, которые мне надо поменять http://screencast.com/t/zpaSw2rG Поиск и замена не работает с объектами, поэтому надо написать скрипт на VBA, чтобы обойти все объекты на листе и заменить ТРАТАТА!ДИАПАЗОН на ТРОЛОЛО!ДИАПАЗОН. Заменить нужно то, что до ! знака. Подсобите? Пополню баланс выручающего. |
|||
1
Gantosha
23.08.13
✎
10:35
|
там есть запись макросов ..включаешь и начинаешь менять ..потом останаввливаешь запись ..и дописываешь код - всякие циклы пишутся как и в 1с только слова английские
|
|||
2
Balabass
23.08.13
✎
10:56
|
(1) Плять!(Ударил себя лодонью по лбу). Точно! Спасибо мил человек!
|
|||
3
Wobland
23.08.13
✎
10:57
|
(2) на спасибо жене не позвонишь ;)
|
|||
4
Balabass
23.08.13
✎
11:02
|
(3) Судя по фото, он не нуждается в моих 50 рублях)
|
|||
5
Balabass
23.08.13
✎
12:16
|
Осторожно. Копрокод на VBA чтобы в экселе заменить у объектов на листе значение ранжа.
Sub Макрос1() 'объявление переменной численного типа Dim i As Integer 'присваеваем ей значение 1 i = 1 'при ошибке продолжить аля попытка в 1с On Error Resume Next Do While i < 999 'попытка присвоить переменной обж объект по счетчику И Set obj = ActiveSheet.Shapes("Drop Down " + CStr(i)).Select 'Если объект пуст, т.е. не существует то идем далее If Not (obj Is Nothing) Then 'Else 'иначе пытаемся работать с объектом и получаем на него селект ActiveSheet.Shapes("Drop Down " + CStr(i)).Select 'работаем с селектом With Selection 'получаем в строковом виде значение которое надо менять b = CStr(.ListFillRange) 'тут пишем то будем дописывать к нашему значению C = "НУЖНАЯНАМЧАТЬДЛЯВЫПИЛИВАНИЯ" 'выкидываем часть ненужную нам по символам начала и кончала Do While InStr(1, b, "СИМВОЛНАЧАЛАВЫПИЛИВАНИЯ") And InStr(1, b, "СИМВОЛОКОНЧАНИЯВЫПИЛИВАНИЯ") c1 = InStr(1, b, "СИМВОЛНАЧАЛАВЫПИЛИВАНИЯ") c2 = InStr(1, b, "СИМВОЛОКОНЧАНИЯВЫПИЛИВАНИЯ") d1 = Mid(b, 1, c1 - 1) d2 = Mid(b, c2 + 1 + 1) b = d1 + d2 Loop 'MsgBox b при желании можно сообщить что там получается и запишем что нужно в объект .ListFillRange = C + b '.DropDownLines = 369 End With End If i = i + 1 Loop End Sub Вроде все. |
|||
6
Wobland
23.08.13
✎
12:26
|
'объявление переменной численного типа
Dim i As Integer 'присваеваем ей значение 1 i = 1 это мощно! |
|||
7
Balabass
23.08.13
✎
12:37
|
(6) Можно не объявлять?
|
|||
8
Капитан О
23.08.13
✎
12:38
|
(7) завидую таким комментариям
|
|||
9
Balabass
23.08.13
✎
12:38
|
Да я последний раз на английском в школе в делфях 6 писал а до этого на паскале. Что ты от меня хочешь )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |