|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 9:05 am
|
Страница 1 от 1
|
[ 5 мнения ] |
|
| Автор |
Съобщение |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Въпрос за VB 2005
Свалих от някакъв сайт код за писане в Excel от VB2005. Но ми дава грешка следният ред:
Private Sub cmdLoad_Click()
Можете ли да кажете с какво трябва да се замени. Убих се да ровя в хелпа, но засега е без резултат.
|
| Чет Фев 18, 2010 8:29 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Мисля, че това е функция, която се изпълнява при цъкане на бутон. Провери дали имаш бутон на име "cmdLoad" 
|
| Чет Фев 18, 2010 10:24 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
Това е процедура която се изпълнява при кликването на бутон cmdLoad
Най-вероятната причина е да нямаш бутон с име cmdLoad
Иначе процедурата започва с Private Sub ... и свършва с End Sub и някъде между тях е грешката.
Постави най-горе в страницата на кода Option Explicit и ако има грешка в някоя променлива компилаторът ще я посочи.
Ако ще работиш с Excel трябва да отидеш в References и трябва да маркираш Microsoft Excel 10.0 Object Library (или която там версия имаш инсталирана)
Ако искаш да прескочиш грешката и програмата да се изпълни - веднага под Private Sub cmdLoad_Click() напиши On Error Resume Next
но това просто ще игнорира грешката и ако е нещо важно програмата пак няма да работи коректно.
Каква точно грешка изписва ?
|
| Пет Фев 19, 2010 1:25 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
Да... Бутон трябва да е. Когато направя такъв бутон, се появява точно тази процедура. Само ми сменя грешката. Този VB почти никак не ми е ясен и в момента съм свалил куп примерни проекти, за да видя как трябва да стане. Иначе целта е следната: Имам две таблици в Excel. В колона A на единия файл са записани някакви номера и срещу тях съответни имена. През серийния порт се прочита номер и се прави проверка по цялата колона А за съответствие. Когато се намери такова, копира се името срещу номера от колона В и се вкарва в първия свободен ред на колона А на втората таблица. Срещу него в колона В се записва текущият час.
|
| Пет Фев 19, 2010 11:24 am |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
Това ми прилича на нещо като система за контрол на достъпа. Предполагам, че това е училищно задание защото е по-удобно да се използва 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
Ако нещо не ти е ясно - питай!
|
| Съб Фев 20, 2010 2:29 am |
|
|
|
Страница 1 от 1
|
[ 5 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|