VBA, Excel и дати
7 отговора
347 прегледа
VBA, Excel и дати
Условията:
1. Таблица Excel и форма за въвеждане на данните.
2. Колона от таблицата „Дата”, форматирана Custom dd.mm.yyyy
3. TextBox, който показва и въвежда дати в колона „Дата”
Въпрос:
Какви трябва да са настройките на TextBox, за да показва и въвежда датите във формат dd.mm.yyyy?
1. Таблица Excel и форма за въвеждане на данните.
2. Колона от таблицата „Дата”, форматирана Custom dd.mm.yyyy
3. TextBox, който показва и въвежда дати в колона „Дата”
Въпрос:
Какви трябва да са настройките на TextBox, за да показва и въвежда датите във формат dd.mm.yyyy?
Re: VBA, Excel и дати
На пощата в ABV-то но има някакъв проблем, защото два пъти ми го връща.
Re: VBA, Excel и дати
и аз се боря с този проблем, може ли нещо и на мен да пратиш
[email protected]
Go Install Analysis Toolpack!
[email protected]
Go Install Analysis Toolpack!
Re: VBA, Excel и дати
Опитал съм се да направя нещо, в смисъл да се въвеждат само цифри и ".", както и да прави проверка за валидност на дата. Другото е да може да се въвежда дата в съкратен формат 1.2.05 , като при излизане на контрола да дава 01.02.2005. Ще ти пусна демо, както и на колежката за 4-ти път, но си го отворете в VBA, че не съм му сложил бутон в шийта.
Определено имам проблем с пощата на колежката, връща ми блокиран адрес.
Ако Алекс го получи, нека да и го изпрати.
Определено имам проблем с пощата на колежката, връща ми блокиран адрес.
Ако Алекс го получи, нека да и го изпрати.
Редактирано от Zarev на
Re: VBA, Excel и дати
Вижте това
1. Когато показва:
TextBox1.Text = Format(TextBox1.Text, "dd.mm.yyyy")
2. Когато въвежда:
If TextBox1.Value = "" Then
d_data = ""
z = z + 1
ActiveCell.Offset(0, z).Value = d_data
Else:
d_data = DateValue(TextBox1.Value)
z = z + 1
ActiveCell.Offset(0, z).Value = d_data
End If
Направих го с IF, защото когато полето е празно дава грешка
3. И настройка на TextBox, за да покаже веднага датата в желания формат.
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(TextBox1.Text, "dd.mm.yyyy")
End Sub
Така се постигат следните неща:
1. Възможност за въвеждане на дата, както в Excel. Напр. 12.6 или 12/6 като допълва с настоящата година.
2. Показва датите в текстовите полета при разглеждане коректно (преди ми ги показваше във формат mm.dd.yyyy).
3. Когато въвежда датите в таблицата те са дати, а не текст (което от своя страна води и до коректна работа на изчисленията с дати).
Очаквам да споделите мнения и предложения.
А ето и друг e-mail
cveti.mp@gmail.com
1. Когато показва:
TextBox1.Text = Format(TextBox1.Text, "dd.mm.yyyy")
2. Когато въвежда:
If TextBox1.Value = "" Then
d_data = ""
z = z + 1
ActiveCell.Offset(0, z).Value = d_data
Else:
d_data = DateValue(TextBox1.Value)
z = z + 1
ActiveCell.Offset(0, z).Value = d_data
End If
Направих го с IF, защото когато полето е празно дава грешка
3. И настройка на TextBox, за да покаже веднага датата в желания формат.
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(TextBox1.Text, "dd.mm.yyyy")
End Sub
Така се постигат следните неща:
1. Възможност за въвеждане на дата, както в Excel. Напр. 12.6 или 12/6 като допълва с настоящата година.
2. Показва датите в текстовите полета при разглеждане коректно (преди ми ги показваше във формат mm.dd.yyyy).
3. Когато въвежда датите в таблицата те са дати, а не текст (което от своя страна води и до коректна работа на изчисленията с дати).
Очаквам да споделите мнения и предложения.
А ето и друг e-mail
cveti.mp@gmail.com