| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Въпрос за VB 2005 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=7568 |
Страница 1 от 1 |
| Автор: | E1 [ Чет Фев 18, 2010 8:29 pm ] |
| Заглавие: | Въпрос за VB 2005 |
Свалих от някакъв сайт код за писане в Excel от VB2005. Но ми дава грешка следният ред: Private Sub cmdLoad_Click() Можете ли да кажете с какво трябва да се замени. Убих се да ровя в хелпа, но засега е без резултат. |
|
| Автор: | darkshy [ Чет Фев 18, 2010 10:24 pm ] |
| Заглавие: | |
Мисля, че това е функция, която се изпълнява при цъкане на бутон. Провери дали имаш бутон на име "cmdLoad" |
|
| Автор: | CarBeta [ Пет Фев 19, 2010 1:25 am ] |
| Заглавие: | |
Това е процедура която се изпълнява при кликването на бутон cmdLoad Най-вероятната причина е да нямаш бутон с име cmdLoad Иначе процедурата започва с Private Sub ... и свършва с End Sub и някъде между тях е грешката. Постави най-горе в страницата на кода Option Explicit и ако има грешка в някоя променлива компилаторът ще я посочи. Ако ще работиш с Excel трябва да отидеш в References и трябва да маркираш Microsoft Excel 10.0 Object Library (или която там версия имаш инсталирана) Ако искаш да прескочиш грешката и програмата да се изпълни - веднага под Private Sub cmdLoad_Click() напиши On Error Resume Next но това просто ще игнорира грешката и ако е нещо важно програмата пак няма да работи коректно. Каква точно грешка изписва ? |
|
| Автор: | E1 [ Пет Фев 19, 2010 11:24 am ] |
| Заглавие: | |
Да... Бутон трябва да е. Когато направя такъв бутон, се появява точно тази процедура. Само ми сменя грешката. Този VB почти никак не ми е ясен и в момента съм свалил куп примерни проекти, за да видя как трябва да стане. Иначе целта е следната: Имам две таблици в Excel. В колона A на единия файл са записани някакви номера и срещу тях съответни имена. През серийния порт се прочита номер и се прави проверка по цялата колона А за съответствие. Когато се намери такова, копира се името срещу номера от колона В и се вкарва в първия свободен ред на колона А на втората таблица. Срещу него в колона В се записва текущият час. |
|
| Автор: | CarBeta [ Съб Фев 20, 2010 2:29 am ] |
| Заглавие: | |
Това ми прилича на нещо като система за контрол на достъпа. Предполагам, че това е училищно задание защото е по-удобно да се използва ACCESS за съхраняване на картите, имената и времето на достъп. При EXCEL има някой особености най-вече при запис в клетките а и отварянето дори на празен фаил е доста по-бавно отколкото на ACCESS. Това не е разумен вариант за такъв проект освен ако не е с учебна цел. Ще ти покажа как да отваряш фаил и да заредиш worksheet, как да прочетеш съдържанието на дадена клетка и как след това да направиш запис в друга клетка и да запаметиш промените. Ако напишеш какъв четец ще се използва мога да ти покажа и как да работиш с RS232. Останалото трябва да навържеш сам. Правиш нов проект и от References трябва да маркираш Microsoft Excel 10.0 Object Library Option Explicit 'Декларираме променливи Dim ExcelApp As Excel.Application Dim ExcelWorkbook As Excel.Workbook Dim ExcelWorksheet As Excel.Worksheet 'При отваряне на формата отваряме и фаила Private Sub Form_Load() Set ExcelApp = GetObject("", "excel.application") ExcelApp.Visible = False Set ExcelWorkbook = Excel.Workbooks.Open("C:\file_name.xls") Set ExcelWorksheet = ExcelWorkbook.Worksheets.Item(1) End Sub 'При кликване на бутона съдържанието на клетка ред1/колона1 се изписва в текстово поле Private Sub Command1_Click() Text1.Text = ExcelWorksheet.Cells(1, 1) End Sub 'При кликване на бутона "string_to_write" се записва в клетка ред1/колона1 Private Sub Command2_Click() ExcelWorksheet.Cells(1, 1) = "string_to_write" ExcelWorkbook.Save End Sub 'При затваряне на формата освобождаваме и файла 'това се прави и ако се затвори единия фаил за да се отвори втори 'може за втория фаил да декларираме други променливи което е полезно ако ще се работи 'с двата фаила едновременно Private Sub Form_Unload(Cancel As Integer) ExcelWorkbook.Close Set ExcelWorksheet = Nothing Set ExcelWorkbook = Nothing Set ExcelApp = Nothing End Sub Ако нещо не ти е ясно - питай! |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|