Микроконтролери и електроника
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" :idea:

Автор:  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/