Jump to content
ECJ69SSS

(RESOLVIDO) Abrir ficheiro txt no excel com vb.net

Recommended Posts

ECJ69SSS

Boa Noite,

Estou tentando aprender vb.net.

Já tenho uma macro que funciona no excel e estou alterando para o vb.net.

Ao tentar abrir um ficheiro txt no excel com o delimitador "Ý", está dando erro no código.

Na macro utilizo:

         Workbooks.OpenText Filename:= _
        Serv_caminho & "\" & Fch2x, Origin _
        :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=True, OtherChar:="Ý", FieldInfo:= _
        Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
        True

Após abrir o ficheiro no excel, vou tratar alguns campos e depois copio alguns campos para outro excel de layout.

Tentei utilizar os comandos abaixo, mas no open está dando erro.

 Xls_book = 1
        Xls_sheet = 1
        Xls_xlapp = 1


        xlApp(Xls_xlapp) = New Microsoft.Office.Interop.Excel.Application

        xlApp(Xls_xlapp).Visible = True

        xlBook(Xls_book) = xlApp(Xls_xlapp).Workbooks.Open(Filename:=Caminho1 & "\" & fch_inp,
                                                           Delimiter:="Ý",
                                                           Origin:=xlWindows)

Utilizo o código abaixo para o calculo de data Juliana. Gostava de saber se o mesmo funcionária em vb.net?

  ' Calculo de data juliana

    Dim sel_dti, sel_detf, julianDate, dti_X, dtf_X
        
    sel_dti = Mid(Range("A3").Value, 14, 7)
    sel_dtf = Mid(Range("A3").Value, 31, 7)
    
    Range("B3").Select
    Selection.Copy
    Range("N7").Select
    ActiveSheet.Paste
    Range("G4:G5").Select
    Application.CutCopyMode = False
    Selection.NumberFormat = "[h]:mm:ss;@"
    Selection.Copy
    Range("O1").Select
    ActiveSheet.Paste
    Range("P4").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "24:00:00"
    Range("O12").Select
    ActiveCell.FormulaR1C1 = "=R[-8]C[1]*R[-5]C[-1]+R[-10]C-R[-11]C"
    Range("O12").Select
    Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"

   '##################################
   
    'MsgBox (DateSerial("2013", 1, "093"))
    djuliana_aa_i = Mid(sel_dti, 1, 4)
    djuliana_dd_i = Mid(sel_dti, 5, 3)
  ' MsgBox (DateSerial(djuliana_aa_i, 1, djuliana_dd_i))
    dti_X = DateSerial(djuliana_aa_i, 1, djuliana_dd_i)
   
    djuliana_aa_f = Mid(sel_dtf, 1, 4)
    djuliana_dd_f = Mid(sel_dtf, 5, 3)
    dtf_X = DateSerial(djuliana_aa_f, 1, djuliana_dd_f)
   
 

Em vb.net como eu encontro a última linha escrita no excel ?

Na macro eu utilizo o código abaixo, para encontrar a última linha:

   '======== Conta linhas para o fim do arquivo

    Selection.End(xlDown).Select
    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1
    iTotalLinhas = iTotalLinhas + 1

Aguardo por qualquer ajuda!

Cumprimentos.

Edited by ECJ69SSS

Share this post


Link to post
Share on other sites
ECJ69SSS

Olá!!

Para contornar o problema exposto, resolvi dar a volta lendo e passando os dados diretamente para o Layout.

O problema de formatação, já está resolvido!!

Abaixo a abertura correta do ficheiro:


obj_x = obj_x + 1

objExcel(obj_x) = New Excel.Application

objExcel(obj_x).Visible = True

objBook(obj_x) = objExcel(obj_x).Workbooks.Open(Caminho1 & "\" & Fchxls(fchxls_x))

objSheet(obj_x) = objBook(obj_x).Worksheets(wrksheet)

Cumprimentos,

Edited by ECJ69SSS

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.