Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/экспорт Excel -> VB.Net - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
экспорт Excel -> VB.Net
Irbit Дата: Четверг, 26.12.2013, 16:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Добрый день, Всем!
Суть проблемы: в таблицу Excel в режиме On-line в колонки A,B,C поступают данные.
На VB.Net создана форма. На форме TextBox1, TextBox2, TextBox3 и кнопка “Пуск”.
Необходим экспорт из Excel в VB.Net по следующей схеме
1. A1 -> TexBox1, B1 -> TexBox2, C1-> TexBox3
2. A2 -> TexBox1, B2 -> TexBox2, C2-> TexBox3
3. A3 -> TexBox1, B3 -> TexBox2, C3-> TexBox3
4. …………………………………………………. И т.д.
Следующий код в режиме On-line не работает.

[vba]
Код
Imports Microsoft.Office.Interop

Public Class Form1
Private WithEvents xlApp As Excel.Application
Private xlBook As Excel.Workbook
Private WithEvents xlSheet1 As Excel.Worksheet

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add()
xlApp.Worksheets(1).Activate()
xlSheet1 = xlBook.Worksheets.Item(1)
AddHandler xlSheet1.Change, New Excel.DocEvents_ChangeEventHandler(AddressOf xlSheet1_Change)
xlApp.Visible = True

End Sub
Private Sub xlSheet1_Change(ByVal Target As Excel.Range)
Invoke(Sub()
If Target.Column = 1 Then
Me.TextBox1.Text = ""
Me.TextBox1.AppendText(Target.Text)
End If

If Target.Column = 2 Then
Me.TextBox2.Text = ""
Me.TextBox2.AppendText(Target.Text)
End If

If Target.Column = 3 Then
Me.TextBox3.Text = ""
Me.TextBox3.AppendText(Target.Text)
End If
End Sub)
End Sub

End Class
[/vba]

Подскажите, Пожалуйста!
 
Ответить
СообщениеДобрый день, Всем!
Суть проблемы: в таблицу Excel в режиме On-line в колонки A,B,C поступают данные.
На VB.Net создана форма. На форме TextBox1, TextBox2, TextBox3 и кнопка “Пуск”.
Необходим экспорт из Excel в VB.Net по следующей схеме
1. A1 -> TexBox1, B1 -> TexBox2, C1-> TexBox3
2. A2 -> TexBox1, B2 -> TexBox2, C2-> TexBox3
3. A3 -> TexBox1, B3 -> TexBox2, C3-> TexBox3
4. …………………………………………………. И т.д.
Следующий код в режиме On-line не работает.

[vba]
Код
Imports Microsoft.Office.Interop

Public Class Form1
Private WithEvents xlApp As Excel.Application
Private xlBook As Excel.Workbook
Private WithEvents xlSheet1 As Excel.Worksheet

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add()
xlApp.Worksheets(1).Activate()
xlSheet1 = xlBook.Worksheets.Item(1)
AddHandler xlSheet1.Change, New Excel.DocEvents_ChangeEventHandler(AddressOf xlSheet1_Change)
xlApp.Visible = True

End Sub
Private Sub xlSheet1_Change(ByVal Target As Excel.Range)
Invoke(Sub()
If Target.Column = 1 Then
Me.TextBox1.Text = ""
Me.TextBox1.AppendText(Target.Text)
End If

If Target.Column = 2 Then
Me.TextBox2.Text = ""
Me.TextBox2.AppendText(Target.Text)
End If

If Target.Column = 3 Then
Me.TextBox3.Text = ""
Me.TextBox3.AppendText(Target.Text)
End If
End Sub)
End Sub

End Class
[/vba]

Подскажите, Пожалуйста!

Автор - Irbit
Дата добавления - 26.12.2013 в 16:29
AndreTM Дата: Четверг, 26.12.2013, 17:48 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Если данные в Excel поступают от связанного DDE-сервера - событие Change листа может и не возникать
http://www.excelworld.ru/forum/2-7329-1
http://www.excelworld.ru/forum/10-5273-1

Так что либо используйте другой эвент, либо копируйте данные прямо в таблице в другое место, а текстбоксы формы - привяжите к новым ячейкам книги.

Эвент - это Event :D


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 26.12.2013, 19:37
 
Ответить
СообщениеЕсли данные в Excel поступают от связанного DDE-сервера - событие Change листа может и не возникать
http://www.excelworld.ru/forum/2-7329-1
http://www.excelworld.ru/forum/10-5273-1

Так что либо используйте другой эвент, либо копируйте данные прямо в таблице в другое место, а текстбоксы формы - привяжите к новым ячейкам книги.

Эвент - это Event :D

Автор - AndreTM
Дата добавления - 26.12.2013 в 17:48
Irbit Дата: Четверг, 26.12.2013, 18:54 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Уважаемый, AndreTM! Вы правы, данные в Excel поступают от связанного DDE-сервера.
Буду пробовать второй вариант. (И вопрос: Эвент - это что? Программирование по книгам и восемь месяцев отроду)
 
Ответить
СообщениеУважаемый, AndreTM! Вы правы, данные в Excel поступают от связанного DDE-сервера.
Буду пробовать второй вариант. (И вопрос: Эвент - это что? Программирование по книгам и восемь месяцев отроду)

Автор - Irbit
Дата добавления - 26.12.2013 в 18:54
doober Дата: Понедельник, 20.01.2014, 17:46 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 982
Репутация: 338 ±
Замечаний: 0% ±

Excel 2010
Цитата
Эвент - это что?

Это очень страшное слово.
Зачем вам гембель с Excel,добавляйте ссылку на NDde.dll
и работайте напрямую с сервером DDE через DdeClient
Цитата
и восемь месяцев отроду

и зачем оно вам надо. :'(


 
Ответить
Сообщение
Цитата
Эвент - это что?

Это очень страшное слово.
Зачем вам гембель с Excel,добавляйте ссылку на NDde.dll
и работайте напрямую с сервером DDE через DdeClient
Цитата
и восемь месяцев отроду

и зачем оно вам надо. :'(

Автор - doober
Дата добавления - 20.01.2014 в 17:46
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!