По макросам Excell вопрос

Компьютеры, программы, периферия, коммуникации, интернет, программирование и т.п. Ранее назывался Hard-n-Soft.
Сообщение
Автор
Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 0 Сообщение Pedro » 11 май 2010 15:12

Поможите ламеру кто чем может :cry: :

нужно осуществить поиск ячеек, содержащим символ ' " ' (кавычки), например

If k = "бла-бла-бла " бла-бла-бла" then ...

или как-то избавиться от этих грёбаных кавычек во всех ячейках.

voffka
Поблагодарили: 1 раз

№ 1 Сообщение voffka » 11 май 2010 17:09

Ctrl + H и меняйте " на пустое место

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 2 Сообщение Pedro » 11 май 2010 17:31

1: voffka:

в макросе надо!
Нужно, например, чтобы макрос менял кавычки на ничто.

voffka
Поблагодарили: 1 раз

№ 3 Сообщение voffka » 11 май 2010 17:39

так запишите макрос а потом код подправте как надо
аля
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 11.05.2010 (Voffka)

Range("A1:D26").Select
Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 4 Сообщение Pedro » 12 май 2010 10:27

Вот так Оно ругается на """"
Собственно, как и ожидалось
У вас нет необходимых прав для просмотра вложений в этом сообщении.

voffka
Поблагодарили: 1 раз

№ 6 Сообщение voffka » 12 май 2010 18:40

Pedro пишет:
> Вот так Оно ругается на """"
> Собственно, как и ожидалось

попросите кого нибудь показать как это сделать там делов на 5 минут

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 7 Сообщение djdance » 18 май 2010 11:41

6: voffka:
>попросите кого нибудь показать

вот он в №0 и попросил! :D


0: Pedro:

выполняется , не ругается

Код: Выделить всё

Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Cells.Replace What:="""", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 8 Сообщение Pedro » 18 май 2010 11:52

7: djdance:

дарова Дэнс :)
Ты тоже нихрена не понял, что мне надо! Наверное я так хренова объяснил...

Вот осуществляется поиск ячейки в цикле (просто пример):
i = 1
While Worksheets("name").Cells(i, 1) <> 0
If Worksheets("name").Cells(i, 1) = "сова" Then Worksheets("Price List").Cells(i, 22) = "скворец"
Worksheets("name").Cells(i, 11).Select
Selection.EntireRow.Delete
i = i - 1
End If

i = i + 1
Wend
Если в ячейке присутствует символ ", то макрос не работает.

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 9 Сообщение djdance » 18 май 2010 11:58

8: Pedro:
а перед циклом запускать дестроер всех кавычек?

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 10 Сообщение Pedro » 18 май 2010 12:04

9: djdance:

не годится!

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 11 Сообщение djdance » 18 май 2010 12:12

10: Pedro:
то есть ты хочешь проводить поиск по результату единственного строкового сравнения, которое игнорит кавычки внутри операнда?
я даже не знаю, есть ли такой оператор хоть в одном языке мира.
на php можно из двух сделать, вначале обработав операнд командой strtr или preg_replace

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 12 Сообщение Pedro » 18 май 2010 12:16

11: djdance:
>то есть ты хочешь проводить поиск по результату единственного строкового сравнения, которое игнорит кавычки внутри операнда?

можно и так сказать.. А вот допустим тебе надо найти ячейку (поиск циклом), значение которой - кавычки? Неужели это невозможно?

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 13 Сообщение djdance » 18 май 2010 12:19

двойная кавычка

If Worksheets("name").Cells(i, 1) = """"

upd. а , понял. щас

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 14 Сообщение djdance » 18 май 2010 12:29

работает.
может у тебя wrong basic?
у меня вот на твой End if заругался.

Код: Выделить всё

Sub Макрос11()
i = 1
While Cells(i, 1) <> 0
If Cells(i, 1) = """" Then Cells(i, 1) = "дж"


i = i + 1
Wend
End Sub

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 15 Сообщение Pedro » 18 май 2010 14:03

14: djdance:

в таком варианте basic ругается как в 4: Pedro:

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 16 Сообщение djdance » 18 май 2010 14:07

15: Pedro:
ну точно бейсик не тот. у меня excel 2007

Pedro
Аватара пользователя
Поблагодарили: 623 раза

№ 17 Сообщение Pedro » 18 май 2010 14:11

16: djdance:

тут уж ничего не поделаешь. У меня лицензия, сносить не целесообразно.

djdance
Аватара пользователя
Благодарил (а): 1 раз
Поблагодарили: 4 раза

№ 18 Сообщение djdance » 18 май 2010 14:16

17: Pedro:
вот и я в том же положении раком


запустил в 2003-ем. Не ругаецо, заменяет.

Вернуться в «Компьютерный форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей