Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Экспорт из Excel в приложение


Автор: Arkadijnich 8.7.2014, 13:50
Всем Доброго дня!
Не решается  небольшая задача. Исходные данные:1. Язык VB.Net.  2. Существует цепочка: программа «Источник» -> Excel -> программа «Приемник». Из «Источника» по DDE данные поступают в Excel, в колонку А. Здесь проблем НЕТ.
   
При экспорте из Excel в «Приемник» механизм следующий: каждая новая строка копируется в ячейку С1, которая в свою очередь  отображается в TextBox(e). Вот код:
Код

Public Class Form1
    Dim xlApp As Excel.Application = New Excel.Application
    Dim xlSheet1 As Excel.Worksheet

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text += TextBox1.Text + Environment.NewLine
        xlApp.Workbooks.Open("C:\Users\Хозяин\Desktop\Книга1.xlsm")
        xlSheet1 = xlApp.ActiveWorkbook.ActiveSheet
        xlApp.Visible = True

        AddHandler xlSheet1.Calculate, New Excel.DocEvents_CalculateEventHandler(AddressOf xlSheet1_Calculate)
    End Sub
    Private Sub xlSheet1_Calculate()
        Invoke(Sub()

                   Me.TextBox1.Text = xlSheet1.Cells(1, 3).Value

               End Sub)
    End Sub

End Class




Суть проблемы:  Если в Excel не вносятся изменения в следующую ячейку, а меняется текст в уже заполненной, то изменение текста в TextBox(e) не происходит. Кто сталкивался с данной проблемой, подскажите?

Автор: diadiavova 19.7.2014, 13:42
Цитата(Arkadijnich @  8.7.2014,  14:50 Найти цитируемый пост)
Если в Excel не вносятся изменения в следующую ячейку, а меняется текст в уже заполненной, то изменение текста в TextBox(e) не происходит. Кто сталкивался с данной проблемой, подскажите?

Это скорей вопрос по модели автоматизации экселя и задавать его следовало бы в соответствующем разделе. Ну так навскидку могу посоветовать попробовать использовать другое событие, например Change. В принципе при программном изменении ячейки это событие должно срабатывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)