Страница 1 из 1

Как обратится к ячейке, как к массиву?

Добавлено: 20 сен 2005, 18:45
M.Juanito
Здраствуйте!
подскажите пожалуйста..

програмлю макрос для Екселя.
каким образом можно обратится к ячейкев екселе, как к массиву из букв?

тобишь нужно перебрать то что записанов ячейке посимвольно.

заранеее спасибо

Добавлено: 20 сен 2005, 19:45
pashulka

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

iValue = Range("A1").Value

If Not IsError(iValue) Then
   For iSymbol = 1 To Len(iValue)
       MsgBox Mid(iValue, iSymbol, 1), , ""
   Next
End If
Если в ячейке наличествует формула и Вас интересует её текст, а не значение которая она возвращает, то вместо свойства .Value нужно использовать другое свойство, а именно .Formula

Добавлено: 21 сен 2005, 11:39
Игорь Акопян
а ещё есть таоке свойство:

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

Characters Property Example

This example formats the third character in cell A1 on Sheet1 as bold.

With Worksheets("Sheet1").Range("A1")
    .Value = "abcdefg"
    .Characters(3, 1).Font.Bold = True
End With


Добавлено: 21 сен 2005, 14:03
Naeel Maqsudov
Самый цимус еще и в том, что например

.Characters(2,3).Text = "qwerty"

Заменит 3 буквы (начиная со второй) на целых пять.

или

.Characters(2,3).Text = ""

Удалит эти самые три буквы.

Очень удачный метод Characters, я считаю!

Добавлено: 22 сен 2005, 10:59
M.Juanito
не. мне начада чтоп если в ячейке написано "йцук45"
я мог поочередно взять сначала "й" потом "ц" потом "у" и тд

тоесть по типу масива как например в том же паскале строка[номер символа] есть в VB ченидь аналогичное?

Добавлено: 22 сен 2005, 11:04
M.Juanito
Игорь Акопян писал(а):а ещё есть таоке свойство:

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

Characters Property Example

This example formats the third character in cell A1 on Sheet1 as bold.

With Worksheets&#40][/quote]
во! кажись оно. пасиба!

Добавлено: 22 сен 2005, 11:16
pashulka
не. мне начада чтоп если в ячейке написано "йцук45"
я мог поочередно взять сначала "й" потом "ц" потом "у" и тд © M.Juanito 2005
А что по Вашему мнению делает функция Mid из самого первого примера ...

Добавлено: 22 сен 2005, 11:26
M.Juanito
pashulka писал(а):
не. мне начада чтоп если в ячейке написано "йцук45"
я мог поочередно взять сначала "й" потом "ц" потом "у" и тд © M.Juanito 2005
А что по Вашему мнению делает функция Mid из самого первого примера ...
хм. тоже вариант. спасибо :)

Добавлено: 22 сен 2005, 13:01
pashulka
И не просто вариант, а хороший вариант, так как если в ячейке будет наличествовать ссылка/функция/формула, то .Characters.Text Вам ничем не поможет. Можно конечно и в этом случае решить задачу с использованием .Characters, например, "запомнить" текст этой самой формулы, затем заменить формулу на значение, которое она возвращает, затем использовать этот самый характер и только после этого вернуть всё на круги своя. А можно просто использовать функцию Mid(Mid$) ... ведь даже если сейчас Ваша ячейка не содержит формулы, то можете ли Вы дать гарантию, что в дальнейшем ничего не изменится ...

P.S. При ответе цитировать предыдущее сообщение вовсе не обязательно.

Добавлено: 22 сен 2005, 13:12
M.Juanito
да я знаю чтоне обязательно. ет чтоп быловидно на что отвечаю)

хорошо. попробую с mid. спасибо