Ir para o conteúdo
Eliane

Lêr Intervalos de células

Mensagens Recomendadas

Eliane

Bom dia, estou fazendo um código para executar atividades dentre elas algumas já estão prontas e rodando agora a dúvida que tenho é como fazer um for para mostrar em um MessageBox o intervalo das células de "E1 até E1117" o nome da minha planilha É "A" abaixo esta o meu código:

Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop

Public Class Form1

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim APP As New Excel.Application
       Dim workbook As Excel.Workbook
       Dim wSheet As Worksheet
       Dim SheetsNames As New List(Of String)()
       Dim SheetsCount As Integer

       Dim nome As String

       'Abrir arquivo existente do Excel

       workbook = APP.Workbooks.Open("C:\test\ANAC-SBBR-2016-01.xls")
       APP.Visible = False

       'Conta o numero de planilhas
       SheetsCount = workbook.Sheets.Count
       MessageBox.Show("Numero de Planilhas: " & SheetsCount)

       'Trabalha os nomes das planilhas
       For Each wSheet In workbook.Worksheets
           MessageBox.Show("Nome de Planilha: " & wSheet.Name)
           SheetsNames.Add(wSheet.Name)
       Next

       'Conta os nomes presentes na lista de nomes
       MessageBox.Show("Numero de Nomes de Planilhas: " & SheetsNames.Count)

       'Pegar o nome da segunda planilha
       nome = SheetsNames.ElementAt(1)
       nome = workbook.Worksheets(2).Name
       MessageBox.Show("Nome da segunda planilha: " & nome)

       'Pegar o valor da celula C5 da segunda planilha
       wSheet = workbook.Worksheets(2)
       MessageBox.Show("Valor da Celula C5: " & wSheet.Range("C5").Value)


       wSheet = workbook.Worksheets("A")
       MessageBox.Show("Valor da Celula C1: " & wSheet.Range("C1").Value)



       'Fecha a 
       workbook.Close()

   End Sub
End Class

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Eliane

Alguém pode me ajudar Plis o código com a parte que não roda:

        Dim a As Excel.Range
       a = wSheet.Range("C1:E1117").Value
       Dim i As Integer

       For i = 0 To a Step 1
           MessageBox.Show("O valor de i é :" & i)
       Next

Editado por ribeiro55

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cerzedelo

Pretende contar o numero de células de um intervalo e colocar numa messagebox ou pretende meter na messagebox o valor de todas as células do intervalo, ou pretende, o somatório de todos os valores do intervalo?

É que meter numa messagebox, o valor de cada uma das células do intervalo, não e nada recomendável.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cerzedelo

Veja o seguinte código :

Public Class Form1
   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim xlApp As New Excel.Application
    Dim xlWb As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim lRow As Long = 0

    With xlApp
	    .Visible = True

	    '~~> Open workbook
	    xlWb = .Workbooks.Open("c:\Sample.xlsx")

	    '~~> Set it to the relevant sheet
	    xlsheet = xlWb.Sheets("Sheet1")

	    With xlsheet
		    lRow = .Range("A" & .Rows.Count).End(Excel.XlDirection.xlUp).Row
	    End With

	    MessageBox.Show("The last row in Col A of Sheet1 which has data is " & lRow)

	    '~~> Close workbook and quit Excel
	    xlWb.Close(False)
	    xlApp.Quit()

	    '~~> Clean Up
	    releaseObject(xlsheet)
	    releaseObject(xlWb)
	    releaseObject(xlApp)

    End With
   End Sub

   Private Sub releaseObject(ByVal obj As Object)
    Try
	    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
	    obj = Nothing
    Catch ex As Exception
	    obj = Nothing
    Finally
	    GC.Collect()
    End Try
   End Sub
End Class

O que faz é verificar qual é a última linha, da coluna A que está preenchida, dando o numero dessa linha.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.