none
VB2010 從EXCEL抓直回來 RRS feed

  • 問題

  • 請各位幫忙一下了...

    一直找不出問題...也不知道這東西是什麼...

    編譯完出現這東西

    類型 'System.InvalidCastException' 的未處理例外狀況發生於 Microsoft.VisualBasic.dll

    其他資訊: 多載解析失敗,因為無法使用這些引數呼叫公用 '<>':
        'Public Shared Operator <>(a As String, b As String) As Boolean':
            與參數 'a' 對應的引數無法從 '__ComObject' 轉換為 'String'。

    而且在VB2010上我試著將字串抓出來看 ExcelSht.Cells(Y, 1)

    是顯示 System__ComObject

    我付上VB6程式碼 與 VB2010 請幫我一下到底哪裡出錯..或是幫我看怎麼改

    程式主要功能是打開EXCEL檔後,針對第一行往下找到沒資料的地方...後續是要繼續填資料的

    VB6的

        Dim ExcelApp As Excel.Application
        Dim ExcelWkb As Excel.Workbook
        Dim ExcelSht As Excel.Worksheet
        Dim Y As Integer
    
    
       Set ExcelApp = GetObject("", "Excel.Application")
       If Err.Number <> 0 Then
         ' Err.Clear()
           Set ExcelApp = CreateObject("Excel.Application")
           If Err.Number <> 0 Then           
               MsgBox ("電腦沒有安裝EXCEL")
               Exit Sub
           End If
       End If
       Set ExcelWkb = ExcelApp.Workbooks.Open("D:\vbtest\1.xls")    
       Set ExcelSht = ExcelWkb.Worksheets(1) 'PASS存於1  
       Y = 1
       Do While (ExcelSht.Cells(Y, 1) <> "")
         Label2.Caption = Y
         Label3.Caption = ExcelSht.Cells(PassY, 1)        
         Y = Y + 1       
       Loop
    
           
       

    VB2010的
     Dim ExcelApp As Excel.Application
     Dim ExcelWkb As Excel.Workbook
     Dim ExcelSht As Excel.Worksheet
     Dim Y As Integer
     ExcelApp = GetObject("", "Excel.Application")
     If Err.Number <> 0 Then
        Err.Clear()
        ExcelApp = CreateObject("Excel.Application")
        If Err.Number <> 0 Then
          'MsgBox("Error: " & Err.Description)
           MsgBox("電腦沒有安裝EXCEL")
           Exit Sub
        End If
     End If
    
    
     ExcelWkb = ExcelApp.Workbooks.Open("D:\vbtest\1.xls")
     ExcelSht = ExcelWkb.Worksheets(1) 'PASS存於1
          
     Y = 1
     Do While (ExcelSht.Cells(Y, 1) <> "")
               Label2.Text = Y
               Label3.Text = ExcelSht.Cells(Y, 1)
               Y = Y + 1
    Loop

    驗證時可直接使用一個BUTTON 將上面程式碼放入CLICK事件

    而LABEL2 3 我是用來觀察數值的...

    找過了網路資料,沒辦法解決,

    麻請指教了

    程式或許不盡理想~我只是拉出一部分進行DEBUG,

    所以請包含

    補充:

    我看別人抓值有.value可以用

    但我的卻沒有.....why..

    只有toString

    TextBox1.Text = .Cells(Findsw.Row, 2).value   <===


    • 已編輯 魚骨頭 2013年5月10日 上午 07:37 增加補充
    2013年5月10日 上午 07:30

解答

所有回覆