Страницы: 1
RSS
Фукция =ПСТР в VBA
 
Как можно из текста 123456 (находиться в текстбоксе1) взять первые 4 симвала, чтобы использовать их в дальнейшем. например: если первые 4 симвала текстбокса1 = 1234, то привет, если 2345, то пока и т.д.
 
{quote}{login=DOR}{date=28.12.2010 10:58}{thema=Фукция =ПСТР в VBA}{post}Как можно из текста 123456 (находиться в текстбоксе1) взять первые 4 симвала, чтобы использовать их в дальнейшем. например: если первые 4 симвала текстбокса1 = 1234, то привет, если 2345, то пока и т.д.{/post}{/quote}  
if left("123456",4)="1234" then    
msgbox "привет"  
elseif left("123456",4)="2345" then  
msgbox "пока"  
else  
msgbox "и т.д."  
end if  
 
вместо left можно использовать mid
 
{quote}{login=}{date=28.12.2010 11:04}{thema=Re: Фукция =ПСТР в VBA}{post}{quote}{login=DOR}{date=28.12.2010 10:58}{thema=Фукция =ПСТР в VBA}{post}Как можно из текста 123456 (находиться в текстбоксе1) взять первые 4 симвала, чтобы использовать их в дальнейшем. например: если первые 4 симвала текстбокса1 = 1234, то привет, если 2345, то пока и т.д.{/post}{/quote}  
if left("123456",4)="1234" then    
msgbox "привет"  
elseif left("123456",4)="2345" then  
msgbox "пока"  
else  
msgbox "и т.д."  
end if  
 
вместо left можно использовать mid{/post}{/quote}  
 
 
а что означает left b mid?
 
и код поймет что 123456 нужно брать из текстбокса1?
 
{quote}{login=}{date=28.12.2010 11:05}{thema=Re: Re: Фукция =ПСТР в VBA}{post}  
а что означает left b mid?{/post}{/quote}  
в VBA  
left = ЛЕВСИМВ  
mid = ПСТР
 
{quote}{login=DOR}{date=28.12.2010 11:07}{thema=}{post}и код поймет что 123456 нужно брать из текстбокса1?{/post}{/quote}  
нет,    
давайте свой "текстбокс1" в виде xls файла
 
Можете просто код поправить?  
 
Private Sub ComboBox2_Change()  
If TextBox5.Left("104", 3) Or TextBox5.Left("114", 3) Then  
TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 1)  
Else  
TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 2)  
End If  
End Sub
 
.
 
{quote}{login=DOR}{date=28.12.2010 11:27}{thema=}{post}.{/post}{/quote}  
 
Private Sub ComboBox1_Change()  
If Left(TextBox2, 4) = 1234 Then 'вместо этого ножно сравнить первые 4 симбола тбокса2  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)  
Else  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
End If  
End Sub
Спасибо
 
Большое спасибо Вам, R Dmitry. А можно как нибудь объеденить 2 события, что nj вроде    
Private Sub Private Sub ComboBox1_Change() or TextBox2_Change()  
....  
End Sub
 
{quote}{login=DOR}{date=29.12.2010 07:28}{thema=}{post}Большое спасибо Вам, R Dmitry. А можно как нибудь объеденить 2 события, что nj вроде    
Private Sub Private Sub ComboBox1_Change() or TextBox2_Change()  
....  
End Sub{/post}{/quote}  
Поясните, что Вы хотите получить в итоге?
Спасибо
 
итог всех действи это значение в ТБ1. Выбор значения происходит по 2-м критериям, значение в ТБ2 и КБ1. Если написать код только для КБ1, вроде ты все хорошо, но если помять значение в ТБ2, то для того чтобы поменялось значение ТБ1 нужно выбрать любое значение с КБ1 (отличное от того котое сейчас есть) и только тогда будет изменено значение в ТБ1. Если напикать еще такой же код, но уже для ТБ2, то заполнять дынные придется с ТБ1, т.к. в противном случае будет ошибка.    
 
Как то так, пока писал чуть сам незапутался.  
 
Нужно как то объедитать эти два кода, чтобы форму можно было заполнять с любого ТБ. (хоть ТБ1, хоть ТБ2)
 
{quote}{login=DOR}{date=29.12.2010 07:55}{thema=}{post}итог всех действи это значение в ТБ1. Выбор значения происходит по 2-м критериям, значение в ТБ2 и КБ1. Если написать код только для КБ1, вроде ты все хорошо, но если помять значение в ТБ2, то для того чтобы поменялось значение ТБ1 нужно выбрать любое значение с КБ1 (отличное от того котое сейчас есть) и только тогда будет изменено значение в ТБ1. Если напикать еще такой же код, но уже для ТБ2, то заполнять дынные придется с ТБ1, т.к. в противном случае будет ошибка.    
 
Как то так, пока писал чуть сам незапутался.  
 
Нужно как то объедитать эти два кода, чтобы форму можно было заполнять с любого ТБ. (хоть ТБ1, хоть ТБ2){/post}{/quote}  
 
 
 
Private Sub ComboBox1_Change()  
If Left(TextBox2, 4) = 10 Then  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)  
Else  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
End If  
End Sub  
 
Private Sub TextBox2_Change()  
ComboBox1_Change  
End Sub  
 
Private Sub UserForm_Initialize()  
ComboBox1.List = Sheets("Лист1").Range("a1:c5").Value  
End Sub  
если я все правильно понял :)
Спасибо
 
Это тоже самое что и  
Private Sub ComboBox1_Change()  
If Left(TextBox2, 4) = 10 Then  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)  
Else  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
End If  
End Sub  
 
Private Sub TextBox2_Change()  
If Left(TextBox2, 4) = 10 Then  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)  
Else  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
End If  
End Sub  
 
Если неначать заполнять форму с КБ, то ругается на    
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
 
а нужно чтобы можно было начинать с любой
 
Private Sub ComboBox1_Change()  
On Error Resume Next  
If Left(TextBox2, 4) = 10 Then  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)  
Else  
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)  
End If  
End Sub  
Private Sub TextBox2_Change()  
ComboBox1_Change  
End Sub  
 
Private Sub UserForm_Initialize()  
ComboBox1.List = Sheets("Лист1").Range("a1:c5").Value  
End Sub
Спасибо
 
Да. Это то, что нужно. Спасибо.
Страницы: 1
Читают тему
Loading...