OPTION STRICT ON + EXCEL

TUNUSAT 10/06/2014 09:24:45
#438811
Bom dia PessoALL,

Espero que todos estejam melhores moralmente e melhores intelectualmente hoje em comparação ao ontem.
Tenho um dúvida sem pressa (o código está funcionando, mas quero melhorar)
Quero converter o Código abaixo de [Ô]Option Strict Off[Ô] para [Ô]Option Strict On[Ô]:


Option Strict Off
Imports Microsoft.Office.Interop.Excel

[ô][ô][ô] <summary>
[ô][ô][ô] Exporta os dados do DataGridView para uma nova planilha do Excel
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]sender[Ô]></param>
[ô][ô][ô] <param name=[Ô]e[Ô]></param>
[ô][ô][ô] <remarks>Option Strict Off</remarks>
Private Sub btnExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click
Dim oExcel As Object
Dim oPlanilha As Object
Dim oFolha As Object
Dim oFaixa As Object
Dim intContador As Integer = 1

Try
[ô]Cria uma nova planilha
oExcel = CreateObject([Ô]excel.application[Ô])
oPlanilha = oExcel.Workbooks.Add
oFolha = oPlanilha.Sheets(1)

[ô]Definir o nome da Folha (Sheet)
oPlanilha.Sheets(1).Name = Me.Name.Substring(3)

[ô]Define a folha ativa
oFaixa = oExcel.ActiveWorkbook.ActiveSheet

[ô]Exibe o aplicativo Excel
oExcel.Application.Visible = True

[ô]Colocar o cabeçalho - Nome das colunas
For Each Column As DataGridViewColumn In Me.dgvPadrao.Columns

With oFolha
oFaixa.Cells(1, Column.Index + 1).Value = CStr(Column.HeaderText)
oFaixa.Cells(1, Column.Index + 1).Borders.LineStyle = 1
oFaixa.Cells(1, Column.Index + 1).Interior.ThemeColor = 1 [ô]xlThemeColorDark1
oFaixa.Cells(1, Column.Index + 1).Interior.TintAndShade = -0.25
End With

Next

[ô]Colocar as linhas - Valores das colunas.
For Each Linha As DataGridViewRow In Me.dgvPadrao.Rows
intContador = 1

For Each Celula As DataGridViewCell In Me.dgvPadrao.Rows(Linha.Index).Cells

With oFolha
oFaixa.Cells(Linha.Index + 2, intContador).NumberFormat = [Ô]@[Ô]
oFaixa.Cells(Linha.Index + 2, intContador).Value = CStr(Celula.Value)
oFaixa.Cells(Linha.Index + 2, intContador).Borders.LineStyle = 1 [ô]xlContinuous
End With

If (Linha.Index + 2) Mod 2 = 1 Then
oFaixa.Cells(Linha.Index + 2, intContador).Interior.ThemeColor = 1 [ô]xlThemeColorDark1
oFaixa.Cells(Linha.Index + 2, intContador).Interior.TintAndShade = -0.05
End If

intContador += 1
Next

Next

[ô]Ajusta a largura de todas as colunas
oFaixa.Columns([Ô]A:AZ[Ô]).AutoFit()
Catch ex As Exception
Throw ex
End Try

End Sub

O que estou tentando fazer:

Option Strict On
Imports Microsoft.Office.Interop.Excel

[ô][ô][ô] <summary>
[ô][ô][ô] Exporta os dados do DataGridView para uma nova planilha do Excel
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]sender[Ô]></param>
[ô][ô][ô] <param name=[Ô]e[Ô]></param>
[ô][ô][ô] <remarks>Option Strict On</remarks>
Private Sub btnExportar_Click(sender As Object, e As EventArgs) Handles btnExportar.Click
Dim intContador As Integer = 1

[ô]Cria uma nova planilha
Dim oExcel As Application
Dim oFolhas As Workbooks
Dim oFolha As Workbook
Dim oPlanilhas As Sheets
Dim oPlanilha As Worksheet
Dim oFaixa As Range

Try
oExcel = New Microsoft.Office.Interop.Excel.Application()
oFolhas = oExcel.Workbooks
oFolha = oExcel.Workbooks.Add(0)
oPlanilhas = oFolha.Sheets
oPlanilha = CType(oPlanilhas.Add(0), Worksheet) [ô] oPlanilha = CType(oPlanilhas.Item(0), Worksheet)
oFaixa = oPlanilha.Range(0)

[ô]Definir o nome da Folha (Sheet)
oFolha.Sheets(0).Name = Me.Name.Substring(3)

[ô]Define a folha ativa
oFolha = CType(oExcel.ActiveWorkbook.ActiveSheet, Workbook)

[ô]Exibe o aplicativo Excel
oExcel.Application.Visible = True

[ô]Colocar o cabeçalho - Nome das colunas
For Each Column As DataGridViewColumn In Me.dgvPadrao.Columns
oFaixa.Cells(1, Column.Index + 1).Value = CStr(Column.HeaderText)
oFaixa.Cells(1, Column.Index + 1).Borders.LineStyle = 1
oFaixa.Cells(1, Column.Index + 1).Interior.ThemeColor = 1 [ô]xlThemeColorDark1
oFaixa.Cells(1, Column.Index + 1).Interior.TintAndShade = -0.25
Next

[ô]Colocar as linhas - Valores das colunas.
For Each Linha As DataGridViewRow In Me.dgvPadrao.Rows
intContador = 1

For Each Celula As DataGridViewCell In Me.dgvPadrao.Rows(Linha.Index).Cells
oFaixa.Cells(Linha.Index + 2, intContador).NumberFormat = [Ô]@[Ô]
oFaixa.Cells(Linha.Index + 2, intContador).Value = CStr(Celula.Value)
oFaixa.Cells(Linha.Index + 2, intContador).Borders.LineStyle = 1 [ô]xlContinuous

If (Linha.Index + 2) Mod 2 = 1 Then
oFaixa.Cells(Linha.Index + 2, intContador).Interior.ThemeColor = 1 [ô]xlThemeColorDark1
oFaixa.Cells(Linha.Index + 2, intContador).Interior.TintAndShade = -0.05
End If

intContador += 1
Next

Next

[ô]Ajusta a largura de todas as colunas
oFaixa.Columns([Ô]A:AZ[Ô]).AutoFit()
Catch ex As Exception
Throw ex
End Try

End Sub


As linhas que estão dando erro:

- [Ô]oFolha.Sheets(0).Name = Me.Name.Substring(3)[Ô]
- Todas [Ô]oFaixa.[Ô]

Quando eu conseguir escrevo um código exemplo para postar no VBMania.

Obrigado,
LVFIOROT 10/12/2014 09:16:31
#443106
favor formar um projeto de exemplo que fica mais facil ajudar.
ASHKATCHUP 22/12/2014 16:39:05
#443349
Resposta escolhida
Tenta substituir a linha

oFaixa = oPlanilha.Range(0)

por

Set oFaixa = oPlanilha.Range(0)


Tópico encerrado , respostas não são mais permitidas