Cara mengotomatisasi Excel dari Visual Basic.NET untuk mengisi atau untuk memperoleh data dalam kisaran dengan menggunakan array

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 302094 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menunjukkan bagaimana untuk mengotomatisasi Microsoft Excel dan bagaimana untuk mengisi multi-Cell kisaran dengan sebuah array nilai. Artikel ini juga menggambarkan bagaimana mengambil berbagai multi-cell sebagai array dengan menggunakan otomatisasi.

INFORMASI LEBIH LANJUT

Untuk mengisi multi-cell kisaran tanpa mempopulasikan sel satu di waktu, Anda dapat mengatur Nilai properti Kisaran objek ke dua dimensi array. Demikian juga, dua dimensi array nilai dapat diambil untuk sel multiple sekaligus dengan menggunakan Nilai properti. Langkah-langkah berikut menunjukkan proses ini untuk kedua menetapkan dan mengambil data menggunakan dua dimensi array.

Membangun klien otomasi untuk Microsoft Excel

  1. Mulai Microsoft Visual Studio.NET.
  2. Pada Berkas menu, klik Baru, lalu klik Project. Pilih Aplikasi Windows dari jenis proyek Visual Basic. Secara default, Form1 adalah dibuat.
  3. Menambahkan referensi ke Perpustakaan objek Microsoft Excel. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Pada Project menu, klik Menambahkan referensi.
    2. Pada COM tab, Cari Microsoft Excel Perpustakaan objek, lalu klik Pilih.

      Catatan Microsoft Office 2007 dan Microsoft Office 2003 termasuk Interop utama Majelis (PIAs). Microsoft Office XP tidak mencakup PIAs, tetapi mereka dapat di-download.

      Untuk informasi tambahan tentang Office XP PIAs, klik nomor artikel di bawah ini untuk melihat artikel di Microsoft Basis Pengetahuan:
      328912 INFO: Microsoft Office XP PIAs tersedia untuk di-Download
    3. Klik Oke dalam Menambahkan referensi kotak dialog untuk menerima pilihan Anda. Jika Anda diminta untuk menghasilkan pembungkus untuk perpustakaan yang Anda pilih, klik Ya.
  4. Pada Lihat menu, pilih Toolbox untuk menampilkan Toolbox. Menambahkan dua tombol dan kotak centang untuk Form1.
  5. Menetapkan Nama properti untuk kotak centang untukFillWithStrings.
  6. Klik dua kali Button1. Jendela kode untuk bentuk muncul.
  7. Tambahkan baris berikut ke atas Form1.vb:
    Imports Microsoft.Office.Interop
    					
  8. Dalam jendela kode, mengganti kode berikut
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    dengan:
        'Keep the application object and the workbook object global, so you can  
        'retrieve the data in Button2_Click that was set in Button1_Click.
        Dim objApp As Excel.Application
        Dim objBook As Excel._Workbook
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
            Dim objBooks As Excel.Workbooks
            Dim objSheets As Excel.Sheets
            Dim objSheet As Excel._Worksheet
            Dim range As Excel.Range
    
            ' Create a new instance of Excel and start a new workbook.
            objApp = New Excel.Application()
            objBooks = objApp.Workbooks
            objBook = objBooks.Add
            objSheets = objBook.Worksheets
            objSheet = objSheets(1)
    
            'Get the range where the starting cell has the address
            'm_sStartingCell and its dimensions are m_iNumRows x m_iNumCols.
            range = objSheet.Range("A1", Reflection.Missing.Value)
            range = range.Resize(5, 5)
    
            If (Me.FillWithStrings.Checked = False) Then
                'Create an array.
                Dim saRet(5, 5) As Double
    
                'Fill the array.
                Dim iRow As Long
                Dim iCol As Long
                For iRow = 0 To 5
                    For iCol = 0 To 5
    
                        'Put a counter in the cell.
                        saRet(iRow, iCol) = iRow * iCol
                    Next iCol
                Next iRow
    
                'Set the range value to the array.
                range.Value = saRet
    
            Else
                'Create an array.
                Dim saRet(5, 5) As String
    
                'Fill the array.
                Dim iRow As Long
                Dim iCol As Long
                For iRow = 0 To 5
                    For iCol = 0 To 5
    
                        'Put the row and column address in the cell.
                        saRet(iRow, iCol) = iRow.ToString() + "|" + iCol.ToString()
                    Next iCol
                Next iRow
    
                'Set the range value to the array.
                range.Value = saRet
            End If
    
            'Return control of Excel to the user.
            objApp.Visible = True
            objApp.UserControl = True
    
            'Clean up a little.
            range = Nothing
            objSheet = Nothing
            objSheets = Nothing
            objBooks = Nothing
        End Sub
    					
  9. Kembali ke tampilan desain untuk Form1, dan kemudian klik dua kali Button2.
  10. Dalam jendela kode, mengganti kode berikut
        Private Sub Button2_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button2.Click
    
        End Sub
    					
    dengan:
        Private Sub Button2_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button2.Click
            Dim objSheets As Excel.Sheets
            Dim objSheet As Excel._Worksheet
            Dim range As Excel.Range
    
            'Get a reference to the first sheet of the workbook.
            On Error Goto ExcelNotRunning
            objSheets = objBook.Worksheets
            objSheet = objSheets(1)
    
    ExcelNotRunning:
            If (Not (Err.Number = 0)) Then
                MessageBox.Show("Cannot find the Excel workbook.  Try clicking Button1 to " + _
                "create an Excel workbook with data before running Button2.", _
                "Missing Workbook?")
    
                'We cannot automate Excel if we cannot find the data we created, 
                'so leave the subroutine.
                Exit Sub
            End If
    
            'Get a range of data.
            range = objSheet.Range("A1", "E5")
    
            'Retrieve the data from the range.
            Dim saRet(,) As Object
            saRet = range.Value
    
            'Determine the dimensions of the array.
            Dim iRows As Long
            Dim iCols As Long
            iRows = saRet.GetUpperBound(0)
            iCols = saRet.GetUpperBound(1)
    
            'Build a string that contains the data of the array.
            Dim valueString As String
            valueString = "Array Data" + vbCrLf
    
            Dim rowCounter As Long
            Dim colCounter As Long
            For rowCounter = 1 To iRows
                For colCounter = 1 To iCols
    
                    'Write the next value into the string.
                    valueString = String.Concat(valueString, _
                        saRet(rowCounter, colCounter).ToString() + ", ")
    
                Next colCounter
    
                'Write in a new line.
                valueString = String.Concat(valueString, vbCrLf)
            Next rowCounter
    
            'Report the value of the array.
            MessageBox.Show(valueString, "Array Values")
    
            'Clean up a little.
            range = Nothing
            objSheet = Nothing
            objSheets = Nothing
        End Sub
    					

Menguji klien otomasi

  1. Tekan F5 untuk membangun dan menjalankan program sampel.
  2. Klik Button1. Microsoft Excel dimulai dengan buku kerja baru, dan sel-sel A1:E5 dari lembar kerja yang pertama diisi dengan data numerik dari array.
  3. Klik Button2. Program akan mengambil data di sel A1:E5 ke array baru dan menampilkan hasilnya di kotak pesan.
  4. Pilih FillWithStrings, lalu klik Button1 untuk mengisi sel A1:E5 dengan string data.

REFERENSI

Untuk informasi tambahan tentang penggunaan array untuk mengatur dan mengambil data Excel dengan versi sebelumnya dari Visual Studio, klik artikel nomor di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
186120 Cara menggunakan MFC untuk mengotomatisasi Excel dan mengisi berbagai dengan Array
186122 Cara menggunakan MFC untuk mengotomatisasi Excel dan mendapatkan sebuah Array dari berbagai
247412 INFO: Metode untuk mentransfer Data ke Excel dari Visual Basic

Properti

ID Artikel: 302094 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
Kata kunci: 
kbexpertisebeginner kbautomation kbhowto kbmt KB302094 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:302094

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com