2013-05-12 64 views
0

以下是我正在做的要點。我有一個功能區按鈕,需要將一列簡單的2列CSV文件逐行讀入1維數組,然後我需要將數組寫入Excel中的前兩列。試圖將數組寫入單元格的範圍

我已經成功讀入數組(下面的msgbox行確認),但我不能爲我的生活得到任何東西寫入工作表。

Imports Microsoft.Office.Tools.Ribbon 
Imports Microsoft.Office.Interop.Excel 
Imports Microsoft.Office.Tools.Excel 
Imports System.Text 
Imports Microsoft.Office.Core 
Imports Microsoft.VisualBasic.FileIO 

Public Class MyRibbon 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click 

     Dim filename As String = "C:\DATA_csvtest.TXT" 
     Dim fields As String() 
     Dim delimiter As String = "," 
     Using parser As New TextFieldParser(filename) 
      parser.SetDelimiters(delimiter) 
      While Not parser.EndOfData 
       ' Read in the fields for the current line 
       fields = parser.ReadFields() 
       ' Add code here to use data in fields variable. 

       MsgBox(fields(0) + " " + fields(1)) 'verifies above code is working 

       Range("A1:B1").Value2 = fields 

      End While 
     End Using 

    End Sub 



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button2.Click 

     Worksheet("Sheet1").Range("A1").Value = 3.14159 

    End Sub 



    Private Sub MyRibbon_Load(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) Handles MyBase.Load 

    End Sub 

End Class 

Button1_Click子,我發現了錯誤「範圍是一種類型的,不能用作表達式」上Range("A1:B1").Value2 = fields

Button2_Click子,我只是想看看我是否可以寫一個靜態值到單個單元格。我在不同的SO或者MSDN上發現了精確的代碼行......現在我不記得了。無論哪種方式,我得到「'工作表'是不明確的,從命名空間或類型'Microsoft.Office.Tools.Excel,Microsoft.Office.Interop.Excel'導入。」

我對此比較陌生,但我已經嘗試了將數據導入到excel中的源代碼/方法,尤其是將數據寫入單元格/範圍。

有沒有人看到我失蹤/在這裏做錯了?或者也許有另一件事我可以嘗試將數據寫入單元格/範圍?

+0

所以你是在VB.NET上,你想創建一個新的Excel工作簿並添加CSV文件的值,對吧? – 2013-05-12 09:08:44

回答

0

使用ActiveWorkbook.Sheets("Sheet1").Range("A1").Value=3.14159

+0

我試過了,得到這個錯誤: 'ActiveWorkbook'沒有聲明。由於其保護級別,它可能無法訪問。 – user2374136 2013-05-12 04:00:47

0

你有沒有在Button_2代碼打交道的嘗試?我想你可能需要使用類似下面的內容。

Globals.ThisWorkbook.Worksheets("Sheet1").Range("A1").Value2 = 3.14159

而且隨着代碼的第一位,你的數據文件中有一行和兩列?因爲如果有多行,看起來你會在每次迭代後重寫第一個單元格。

你可以增加行數每一次迭代(簡單的),或者你可以插入向下移動在第一單元以使其推先前的重複下去。您也可以創建一個包含所有數據的較大數組,並且只需一次設置所有行。

相關問題