RISOLTO Scrivere del contenuto in TextBox tramite Visual Basic

Egerfaust

Utente Attivo
454
55
CPU
i5-750 @3.35 GHz vcore 1.136
Scheda Madre
Gigabyte p55a-ud3 rev1
HDD
1TB WD Caviar Green
RAM
4x2gb Corsair xms3 1600MHz cl9
GPU
Gigabyte 6950 OC 1GB
Audio
Integrata
Monitor
Asus vw228n
PSU
750W
Case
AeroCool vx-e pro
OS
w7, ubuntu 10.10
Ciao a tutti,
sto cercando di creare tramite VisualStudio una userform che permetta di aprire 2 file (un excel e un word) poi leggere del contenuto da alcune celle nel foglio excel e trascriverlo in determinate textbox nel word.
Ho spulciato molti siti web e sono riuscito solamente ad aprire i file, leggere da excel, a scrivere con il cursore di word ma non a scrivere dentro la textbox..

Vi allego il codice (con tutti i tentativi da me provati)

Codice:
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Core

Public Class Form1
    Public wordapp As Object
    Public excelapp As Object
    Public xlSheet As Object
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Apro il documento word
        wordapp = CreateObject("word.Application")
        wordapp.documents.Open("C:\Users\Enrico\Desktop\Test\Test codice esterno\doc1.docm")

        'Apro il documento excel
        excelapp = CreateObject("excel.Application")
        excelapp.workbooks.Open("C:\Users\Enrico\Desktop\Test\Test codice esterno\Book1.xlsm")
        xlSheet = excelapp.Worksheets("Sheet1")

        'wordapp.Application.ThisDocument.Shapes("TextBox1").Select
        'wordapp.Shapes(1).Text = xlSheet.Cells(1, 1).value
        'wordapp.ContentControls.TextBox1.Text = xlSheet.Cells(1, 1).value
        'wordapp.Selection.TypeText(xlSheet.Cells(1, 1).value) <- Funziona
        'wordapp.Selection.TypeText("La bella lava il fosso") <- Funziona
        'wordapp.ThisDocument.TextBox1.Text = xlSheet.Cells(1, 1).value
        'MsgBox("" & xlSheet.Cells(1, 1).value)

        'Libero le risorse
        wordapp.Quit
        excelapp.Quit
        xlSheet = Nothing
        excelapp = Nothing
        wordapp = Nothing
    End Sub
End Class

Grazie :look:
 
M

Mursey

Ospite
Se la textbox si chiama "TextBox1" prova con wordapp.ThisDocument.Shapes("TextBox1").TextFrame.TextRange.Text
 

Egerfaust

Utente Attivo
454
55
CPU
i5-750 @3.35 GHz vcore 1.136
Scheda Madre
Gigabyte p55a-ud3 rev1
HDD
1TB WD Caviar Green
RAM
4x2gb Corsair xms3 1600MHz cl9
GPU
Gigabyte 6950 OC 1GB
Audio
Integrata
Monitor
Asus vw228n
PSU
750W
Case
AeroCool vx-e pro
OS
w7, ubuntu 10.10
Se la textbox si chiama "TextBox1" prova con wordapp.ThisDocument.Shapes("TextBox1").TextFrame.TextRange.Text

Grazie per la risposta, ma anche con questo codice ricevo un eccezione.

Riporto ciò che mi dice Visual studio:

"Eccezione non gestita di tipo 'System.MissingMemberException' in Microsoft.VisualBasic.dll

Ulteriori informazioni: Impossibile trovare il membro pubblico 'ThisDocument' nel tipo 'ApplicationClass'."


Se può essere di aiuto ho già importato le librerie Microsoft Word 16.0 in VS

Edit: preciso che le textbox non sono quelle che si inseriscono dal menù "Inserisci" e poi "Casella di testo", ma sono controlli ActiveX che si inseriscono dal menù di Sviluppo

Edit #2: ho trovato il metodo finalmente!

wordapp.ActiveDocument.TextBox1.Value = xlSheet.Cells(1, 1).value
 
Ultima modifica:
  • Mi piace
Reazioni: Mursey

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!