0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 41
|
||||||
1 | ||||||
Как сделать так , чтобы переменная на русском языке не выводило ошибку27.06.2016, 10:35. Показов 2520. Ответов 65
Метки нет (Все метки)
А как сделать так , чтобы при назначении переменной на русском языке (что необходимо для отображения в ComboBox) не выдавала ошибку? Или я что то не так сделал?
0
|
27.06.2016, 10:35 | |
Ответы с готовыми решениями:
65
Необходимо немного исправить код(сделать так чтобы не выводило лишние 0), и выводило поле слева от номера бита как сделать так, чтобы вместо #ошибки выводило 0(ноль)? Как сделать так, чтобы выводило нормальный текст, а не ASCII символы как сделать, чтобы на (new DateTime) месяц выводился на русском языке? |
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
||||||
27.06.2016, 14:20 | 21 | |||||
Насколько я понимаю в лезете в autocad из под excel
т.е. код находится в Excel а управляете autocad-ом если не применено раннее связывание то возникнут проблемы с константами (я про вот эти которые начинаются с ac....acRed-например) ранее связывание это когда в редакторе VBA Tools-References выбирается библиотека той программы с которой будете работать - выбрали библиотеку то константы станут доступны - не выбрали(позднее связывание) то будьте добры вместо имени константы прописать ее числовой эквивалент теперь про комбики Excel есть возможность показать несколько столбцов есть возможность показать один столбец и при выборе строки будет выдано значение находящееся в другом столбце но в этой же строке и так создаем данные в 3 столбцах
у комбобокса есть так называемые индексы - т.е. каждой строке присваивается номер индексы начинаются с 0 в свойстве list необходимо написать индекс и номер столбца (то же с 0) когда вы выделяете комбик и переходите к коду в редакторе vba слева внизу есть панель - свойства объекта в этом окне вас интересует 2 строчки BoundColumn и ColumnCount BoundColumn - показывает из какого столбца брать значения (отсчет идет от 1) ColumnCount - показывает сколько столбцов отображать в кобобоксе (отсчет тоже от 1) для нашего случая если BoundColumn - 2 ColumnCount-1 то комбик выдаст список Украина Россия Белорусия при выборе значения в комбике - значение комбика будетвыбираться из списка Киев Москва Минск т.е. видим одно а получаем другое если BoundColumn - 3 ColumnCount-1 то выбор будет происходить из списка Украинский Русский Белорусский При установке ColumnCount-2 Выпадающий список будет иметь вид Украина Киев Россия Москва Белоруссия Минск
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
27.06.2016, 15:09 | 22 |
Т.е. можно в комбо сразу забить эти пары значений - название цвета и значение константы, далее при выборе цвета используем его значение.
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 15:10 | 23 |
ага - так и есть
0
|
oh my god
|
||||||
27.06.2016, 16:16 | 24 | |||||
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
27.06.2016, 16:19 | 25 |
А cstr() зачем?
0
|
oh my god
|
|
27.06.2016, 16:30 | 26 |
Так... запамятовал что это же вариант )) MsgBox © & ", " & ®
Добавлено через 6 минут Не советую этим пользоваться тем, кто второй день прогает.. вам за такое сначало двойку поставят а потом изобьют после уроков ... надо понимать.. почему так можно ))
0
|
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 41
|
|
27.06.2016, 16:41 [ТС] | 27 |
Кто подскажет почему выдает ошибку , когда задаю макросу запомнить выбранный цвет с ComboBox ?????? Опять наверное не тот метод выбрал ???
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 16:48 | 28 |
Свойство Color требует число а вы вводите текст
0
|
oh my god
|
||||||
27.06.2016, 16:48 | 29 | |||||
Это ущерб языка VBA хоть они и схожи с VB6
в VB6 можно писать так, например к позиции добавить дополнительное значение:
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
27.06.2016, 16:50 | 30 |
Да и амперсанд лишний - потому строка красная.
Добавлено через 57 секунд я предлагал, но ведь можно сразу всё забить в комбо - и выше рассказано как.
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 16:50 | 31 |
Уточню - последний амперсанд
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
27.06.2016, 16:53 | 32 |
А это было домашнее задание
0
|
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 41
|
|
27.06.2016, 16:54 [ТС] | 33 |
Верю просто учусь по видио с ютюба или по найденным примерам , не судите строго , просто я 3 день с VBA работаю)))))!!
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 16:55 | 34 |
а домашнее задание будет такое
Что такое амперсанд?
0
|
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 41
|
|
27.06.2016, 16:59 [ТС] | 35 |
Можно забить как числовое значение так и словесное (словесное на английском) , Кад понимает и так и так , если писать
acadLayerPiket.Color = acWhite , макрос ошибки не видит и все работает корректно но мне нужно в место "acWhite" подставить значение выбранное с ComboBox, что я и пытаюсь сделать , точнее понять как правильно это делать !))))
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 17:02 | 36 |
вот вы и добрались до этого момента к которому вас упорно все вели
Добавлено через 1 минуту acWhite - это имя внутренней константы Када и это имя имеет числовое значение
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
27.06.2016, 17:03 | 38 |
а по сему вам нужно в вашем комбобоксе видеть одно а комбик должен выдавать именно число
0
|
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 41
|
|
27.06.2016, 17:04 [ТС] | 39 |
А разве я не задал константы , вроде бы да !!!
'Экспорт пикетов в AutoCAD 'Ввод: выделенный массив [Num,Y,X] - ячейки 'Вывод: пикет - круг d=10 см, номер - TEXT Height=50 см 'AutoCAD должен быть запущен. 'Экспорт осуществляется в новый документ Option Explicit Dim acadApp As AcadApplication Dim acadDoc As AcadDocument Dim acadCircle As acadCircle 'Пикет 20 см в диаметре Dim acadLayerPiket As AcadLayer Dim acadLayerNum As AcadLayer Dim acadText As acadText Dim ValuesRange As Variant Dim Piket_counter As Integer Dim Flag As Boolean Const Белый = acWhite Const Красный = acRed Const Желтый = acYellow Const Зеленый = acGreen Const Синий = acBlue Const Голубой = acCyan Const Фиолетовый = 6 Private Sub ComboBox1_Change() End Sub Private Sub Label3_Click() End Sub Private Sub UserForm_Initialize() ComboBox1.AddItem "Белый" ComboBox1.AddItem "Красный" ComboBox1.AddItem "Желтый" ComboBox1.AddItem "Зеленый" ComboBox1.AddItem "Белый" ComboBox1.AddItem "Синий" ComboBox1.AddItem "Голубой" ComboBox1.AddItem "Фиолетовый" ComboBox2.AddItem "Белый" ComboBox2.AddItem "Красный" ComboBox2.AddItem "Желтый" ComboBox2.AddItem "Зеленый" ComboBox2.AddItem "Белый" ComboBox2.AddItem "Синий" ComboBox2.AddItem "Голубой" ComboBox1.AddItem "Фиолетовый" ComboBox1.Value = ComboBox1.List(0) ComboBox2.Value = ComboBox2.List(6) AutoCAD_Connection End Sub Private Sub ButtonExit_Click() Unload Me End Sub Private Sub CommandButton1_Click() CommandButton1.ControlTipText = (" Name,X,Y,Z=0 ") If Flag = False Then Exit Sub Get_XL_Values If Flag = False Then Exit Sub XL2DWG_RUN CommandButton1.Enabled = False ListBox1.AddItem ("Интеграция координат в AutoCAD завершина") End Sub Private Sub CommandButton2_Click() CommandButton2.ControlTipText = (" Name,X,Y,Z ") If Flag = False Then Exit Sub Get_XL_Values If Flag = False Then Exit Sub XL3DWG_RUN CommandButton2.Enabled = False ListBox1.AddItem ("Интеграция координат в AutoCAD завершина") End Sub Private Sub AutoCAD_Connection() Dim i As Integer Flag = True 'Сначало подключаемся к ядру (Автокаду) On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If Err Then MsgBox "Не могу обнаружить загруженный AutoCAD" Err.Clear Flag = False Else ListBox1.AddItem ("AutoCAD Connect -- Ok") End If On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set acadApp = CreateObject("AutoCAD.Application") acadApp.Visible = False If Err Then MsgBox Err.Description Exit Sub End If End If End Sub Private Sub Get_XL_Values() Dim Num As Variant 'MsgBox ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1) ValuesRange = Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)) Piket_counter = Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)).Count / 3 'MsgBox Piket_counter 'MsgBox Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)).Count End Sub Private Sub Get_XL_Values1() Dim Num As Variant 'MsgBox ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1) ValuesRange = Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)) Piket_counter = Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)).Count / 4 'MsgBox Piket_counter 'MsgBox Range(ActiveWindow.RangeSelection.Address(ReferenceStyle:=xlA1)).Count End Sub Private Sub AutoCAD_Init() Set acadDoc = acadApp.ActiveDocument Set acadLayerPiket = acadDoc.Layers.Add("Тточки") If acadLayerPiket.Freeze = True Then acadLayerPiket.Freeze = False acadLayerPiket.Color = acWhite Set acadLayerNum = acadDoc.Layers.Add("Точки текст") If acadLayerNum.Freeze = True Then acadLayerNum.Freeze = False acadLayerNum.Color = ComboBox2.Value & " " End Sub
0
|
oh my god
|
|
27.06.2016, 17:06 | 40 |
0
|
27.06.2016, 17:06 | |
27.06.2016, 17:06 | |
Помогаю со студенческими работами здесь
40
как сделать так чтобы при активном checkbox на базу данных выводило цифры через sql запрос как сделать так, что бы когда запускается .exe файл все надписи оставались на русском языке Сделать так, чтобы выводило результат с десятичной частью Как в MonoGame сделать чтобы текст выводился в игре на русском, а то выбивает ошибку! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |