Добрый день, Всем! Суть проблемы: в таблицу 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
Уважаемый, AndreTM! Вы правы, данные в Excel поступают от связанного DDE-сервера. Буду пробовать второй вариант. (И вопрос: Эвент - это что? Программирование по книгам и восемь месяцев отроду)
Уважаемый, AndreTM! Вы правы, данные в Excel поступают от связанного DDE-сервера. Буду пробовать второй вариант. (И вопрос: Эвент - это что? Программирование по книгам и восемь месяцев отроду)Irbit