Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET, VBA: [VB .NET] tekstitiedon vertaus excel taulukkoon.

timo80 [09.12.2008 08:56:13]

#

Moro,

Mitenköhän toteutetaan vertailu excel kenttiin. Eli minulla on textboxissa tekstiä ja sitä olisi tarkoitus verrata esim. Kaikkiin A-sarakkeen kenttiin. Jos textboxin teksti vastaa jotain A-sarakkeen kentän tekstiä, esim. A23, tarkoitus olisi tuoda lukea ja tuoda tieto B23:sta takaisin ohjelmaan. Ja vastaavasti jos textbox.text = "S12345" ja excelin A17 = S12345, silloin luettaisiin teksti kentästä B17.

Excelin ohjelma osaa jo avata, joten siinä ei ole ongelmia.

neau33 [10.12.2008 07:29:03]

#

Moikka timo80!

väännä tästä itsellesi sopivaan muotoon...

Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1

   Public Shared WithEvents xlApp As Excel.Application
   Public Shared WithEvents xlbook As Excel.Workbook
   Public Shared WithEvents xlSheet As Excel.Worksheet

   '...
   '...

   Private Sub Form1_Load(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles MyBase.Load

      Dim fullPath As String = "C:\Työkirja1.xls"
      xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
      xlBook  = CType(xlApp.Workbooks.Add(fullPath), Excel.Workbook)
      xlSheet  = CType(xlBook.Worksheets(1), Excel.Worksheet)
      xlSheet.Application.Visible = True
      fullPath = Nothing

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles Button1.Click

      If TextBox1.Text = "" Then
         TextBox1.Focus: Exit Sub
      End If

      Dim LastRow As Integer = xlBook.ActiveSheet.Cells.SpecialCells( _
      Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Row

      For i As Integer = 1 To LastRow
         If TextBox1.Text = ReadCell(i, 1) Then
            TextBox2.Text = ReadCell(i, 2): Exit For
         End If
      Next i

      LastRow = Nothing

   End Sub

   Public Function ReadCell(ByVal x As Integer, _
   ByVal y As Integer) As String

      Return CStr(CType(CType(xlBook.ActiveSheet, _
      Excel.Worksheet).Cells(x, y), Excel.Range).Value)

   End Function

   Private Sub Form1_FormClosing(ByVal Sender As Object, _
   e As System.Windows.Forms.FormClosingEventArgs) _
   Handles MyBase.FormClosing

      xlApp.Quit: xlSheet = Nothing
      xlBook  = Nothing: xlApp = Nothing

   End Sub

End Class

timo80 [11.12.2008 10:28:14]

#

Kiitokset!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta