Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

diogoarsousa

O VB.NET não aceita várias funções que o VB6 aceitava ao trabalhar no Excel

Mensagens Recomendadas

diogoarsousa

Olá

E tenho um programa em VB6 que abre uma folha de cálculo Excel 2003 e o programa utiliza expressões funções do Excel do tipo AVERAGE ou MIN e funciona bem.

Estou agora a desenvolver o mesmo programa em Visual Basic.NET 2003 e se não utilizar MÉDIA ou MÍNIMO, não reconhece as funções.

Por outro lado as fórmulas, que funcionavam com o VB6, agora dão erro:

Folha2.Range("C1").FormulaR1C1 = "=RC[-2]/20"

O que é que eu posso fazer?

Obrigado

Diogo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino
O VB.NET não aceita várias funções que o VB6 aceitava ao trabalhar no Excel

Aceitar aceita, tu é que não sabes ;)

Mostra lá que funções e mostra lá mais código.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogoarsousa

Por exemplo, no código do VB6 tinha e tenho o Office em português:

Folha1.Range("E" & CStr(ultimo + 2)).value = "=AVERAGE(" & "E" & CStr(primeiro + 1) & ":" & "E" & CStr(ultimo + 1) & ")"

O VB.NEt exige-me que eu escreva MÉDIA em vez de AVERAGE.

E também todos os «FormulaR1C1» dão erro:

Folha2.Range("C1").FormulaR1C1 = "=RC[-2]/20"

Obrigado

Diogo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AMateus

Não sei se é o caso, mas acho que o nome das funções na versão inglesa e na versão portuguesa são diferentes.

Por algum motivo que me escapa, na localização do software para português traduziram também as funções. Pode ser essa (deve ser com certeza) a situação no caso das funções. SE em vez de IF, SOMA em vez de SUM, por aí!

Claro que prefiro não fazer comentários a esta hmmm decisão de estratégia de localização! Normalmente não gosto de insultar ninguém!

AMateus


R. Tape Loading Error

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Eu até entendo a estratégia, e nao é má.

Parece um pequeno preço a pagar para que se tenham muito mais utilizadores contentes do que se teria da outra forma.

A relação da Framework com o Office está muito mais "forte" do que antes, permitindo uma interoperabilidade muito elevada, o que vai fazer, de certeza, com que se tenha de respeitar o "locale".

Com o VB6 devia passar por um intermediário que ia ao cerne da questao, ou algo assim.

Estou a especular à força toda 🤔


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Eu discordo totalmente das funções no Office em PT estarem em Português. Os comandos de programação (Dim, Private, For Each, etc) também não estão traduzidos. Tanto não concordo tanto que, como faço parte do programa do Office como tester, já coloquei essa questão e sugeri pelo menos a possibilidade de alterar num menu/opção qualquer.

@diogoarsousa ,

Isso que mostraste não dá para nada. Mostra mais código: imports, que referências usaste, o que é o "Folha2" por exemplo, tens intelissense para te aparecer "FormulaR1C1", etc, etc.

Assim, é dificil ajudar-te :confused:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogoarsousa

Add Reference

COM

Microsoft Excel 11.0 Object Library

No Form apareceu-me:

Imports Excel = Microsoft.Office.Interop.Excel

O que é intelissense para aparecer "FormulaR1C1"?

Pequenas partes do programa:

       Dim objApp As New Excel.Application()

        Dim Folha1 As Object

        Dim Folha2 As Object

        Dim Grafico As Object


        objApp.Workbooks.Add()


        Folha1 = objApp.ActiveWorkbook.Worksheets.Add
        Folha1.Name = "Quadro"

        Folha2 = objApp.ActiveWorkbook.Worksheets.Add
        Folha2.Name = "Quadro Auxiliar"

        Grafico = objApp.ActiveWorkbook.Charts.Add
        Grafico.Name = "Gráfico"

        objApp.Visible = True

        Folha2.Activate()

Tudo o que meta «Formula» dá erro

Folha2.Range("C1").FormulaR1C1 = "=RC[-2]/20"

Obrigado

Diogo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AMateus

Na tua lógica então todas as linguagens deveriam ser traduzidas? Além do IDE, traduzia-se as funções, operadores, comandos da linguagem? :cheesygrin: Por acaso era interessante ver o c++ traduzido, ou o .net :confused:

É totalmente absurdo, mas isso é a minha opinião claro, e respeito a tua :cheesygrin:

AMateus

Eu até entendo a estratégia, e nao é má.

Parece um pequeno preço a pagar para que se tenham muito mais utilizadores contentes do que se teria da outra forma.

A relação da Framework com o Office está muito mais "forte" do que antes, permitindo uma interoperabilidade muito elevada, o que vai fazer, de certeza, com que se tenha de respeitar o "locale".

Com o VB6 devia passar por um intermediário que ia ao cerne da questao, ou algo assim.

Estou a especular à força toda 🤔


R. Tape Loading Error

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Eu não estou a defender a estratégia.

Também me mete nojo escrever "SE".

Eu disse que entendo a estratégia.

Ao traduzir as funções do excel (que é a única coisa que está aqui em causa. dizer "todas as linguagens" é estar a meter-me palavras na boca... ou na ponta dos dedos), a Microsoft está a agradar à fatia dos utilizadores que não são programadores, que deve ser, arriscaria dizer uma percentagem superior a 70%.

Se fizeres a conta em euros/satisfação, vais ver que entendes a estratégia também. :confused:


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

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.