imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 30.10.2004, 15:40     # 1
Rubin
Guest
 
Сообщения: n/a

Помогите переделать макрос для Excel.

Текст макроса:
----------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

'***********************************************
' help urllink-doggie-yandex.ru
'***********************************************

On Error GoTo Err

iClm = Target.Column: iRow = Target.Row

iDate = Target.Value

If iClm = 1 And iRow >19 And iRow < 301 Then

Select Case iDate
Case "1"
iDate = "Рога и копыта"
Case "2"
iDate = "Кидалов и сыновья"
Case "3"
iDate = "ООО Торговый Дом Шелупонь"
Case "4"
Rem : И так далее ...
End Select

Application.EnableEvents = False

Application.Undo

Target.Value = iDate

Application.EnableEvents = True

End If

Err: End Sub
----------------------------------------------------------------------
Вопрос1
А можно этот макрос как нибудь расширить он делает автоподмену только в столбце А а мне нужно чтобы он делал подмену на одном листе но в нескольких столбцах к примеру в А, С, H.

Вопрос2
И можно ли в iDate = "" писать не текст а номер ячейки из которой нужно брать значение?
 
Старый 01.11.2004, 12:37     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
Rubin:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
В эту процедуру передаётся адрес, в котором и происходит замена. Чтобы он искал и трёх столбцах, нужно зделать другой макрос.

Цитата:
Rubin:
iClm = Target.Column: iRow = Target.Row
Это и есть адрес ячейки, только в двух частях. iClm=1 - это первый столбец (А).

Вообще, не очень понятно, что именно макрос делает и что нужно. Если нужна одинаковая замена в трёх столбцах, тогда самый простой вариант:
Заместо строки (If iClm = 1 And iRow >19 And iRow < 301 Then ) написать
iClm = 1 ' столбец "А"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("A"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If

iClm = 2 ' столбец "B"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("B"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If

iClm = 3 ' столбец "C"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("C"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If

Как работает не проверял.
EvroStandart вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:34.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.