powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ЛЕВСИМ и ПРАВСИМ с помощью VBA
5 сообщений из 5, страница 1 из 1
ЛЕВСИМ и ПРАВСИМ с помощью VBA
    #37142827
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!!!

Как можно реализовать с помощью VBA функции Excel ЛЕВСИМ и ПРАВСИМ ???
т.е. например в ячейке A1 есть данные "3000x500", как сделать чтобы в ячейке B1 отразилось "3000", а в ячейке C1 "500" Символ "x" выбрасывается. Хочу заметить, что "3000x500" - это в качестве примера, могут быть варианты и "300x500" и "30x500" и "3000x50" т.е. по количеству знаков до символа и после не пойдет, необходимо взять данные строго до символа "x" и после него.

Заранее благодарю!!!
...
Рейтинг: 0 / 0
ЛЕВСИМ и ПРАВСИМ с помощью VBA
    #37142855
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikalex2, ДЛЯ ЗАТРАВКИ
Пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
' В данном примере функция InStr
' возвращает позицию первого появления
' одной строки внутри другой строки
Dim SearchString, SearchChar, MyPos
SearchString ="Русский_Проект"   ' Исходная строка
SearchChar = "Р"   ' Следует найти "P"

' Посимвольное сравнение, начиная с позиции 4. Возвращает 10
MyPos = Instr( 4 , SearchString, SearchChar, vbTextCompare)   

' Двоичное сравнение, начиная с позиции 1. Возвращает 1
MyPos = Instr( 1 , SearchString, SearchChar,  0 )

' Сравнение является двоичным по умолчанию (последний аргумент опущен)
MyPos = Instr(SearchString, SearchChar)   ' Возвращает 1

MyPos = Instr( 1 , SearchString, "W")   ' Возвращает  0 
...
Рейтинг: 0 / 0
ЛЕВСИМ и ПРАВСИМ с помощью VBA
    #37143119
nikalex2,
и зачем Вам этот велосипед...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Public Function LeftRight$(a As Range, _
        Optional lr As Byte, Optional sep$ = " ")
' a - ссылка на ячейку, значение которой надо разделить;
' lr  - 0: получить "левую" часть (по умолчанию), 1: получить "правую часть"
' sep - разделитель левой и правой части, по умолчанию - пробел
'      если во входном значении несколько разделителей, раздел пройдет
'      по первому из них

  If a Is Nothing Or a.Value2 = "" Then Exit Function

' *** вариант 1
  Dim k%

  k = InStr( 1 , a.Value2, sep)

  If k =  0  Then
    LeftRight = a.Value2
  ElseIf lr =  0  Then
    LeftRight = Left$(a.Value2, k -  1 )
  Else
    LeftRight = Mid$(a.Value2, k + Len(sep))
  End If


' *** вариант 2
'  Dim arr
'
'  arr = Split(a.Value2, sep)
'  If lr > 1 Then lr = 1
'  On Error Resume Next
'  LeftRight = arr(lr)
'  On erro GoTo 0
'  Erase arr

End Function

' формула для ячейки B1: =LeftRight(A1;0;"x")
' формула для ячейки C1: =LeftRight(A1;1;"x")
...
Рейтинг: 0 / 0
ЛЕВСИМ и ПРАВСИМ с помощью VBA
    #37143474
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемnikalex2,
+
и зачем Вам этот велосипед...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Public Function LeftRight$(a As Range, _
        Optional lr As Byte, Optional sep$ = " ")
' a - ссылка на ячейку, значение которой надо разделить;
' lr  - 0: получить "левую" часть (по умолчанию), 1: получить "правую часть"
' sep - разделитель левой и правой части, по умолчанию - пробел
'      если во входном значении несколько разделителей, раздел пройдет
'      по первому из них

  If a Is Nothing Or a.Value2 = "" Then Exit Function

' *** вариант 1
  Dim k%

  k = InStr( 1 , a.Value2, sep)

  If k =  0  Then
    LeftRight = a.Value2
  ElseIf lr =  0  Then
    LeftRight = Left$(a.Value2, k -  1 )
  Else
    LeftRight = Mid$(a.Value2, k + Len(sep))
  End If


' *** вариант 2
'  Dim arr
'
'  arr = Split(a.Value2, sep)
'  If lr > 1 Then lr = 1
'  On Error Resume Next
'  LeftRight = arr(lr)
'  On erro GoTo 0
'  Erase arr

End Function

' формула для ячейки B1: =LeftRight(A1;0;"x")
' формула для ячейки C1: =LeftRight(A1;1;"x")


Чёт не разделяется, вроде делаю все как в примечаниях
...
Рейтинг: 0 / 0
ЛЕВСИМ и ПРАВСИМ с помощью VBA
    #37143710
nikalex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори пробуй камнем !!!
Туплю с утра по-раньше. Всё РАБОТАЕТ!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ЛЕВСИМ и ПРАВСИМ с помощью VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]