Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
#2015
A função abaixo tenta retornar qualquer lista de valores de números de um campo "numero" (por exemplo) de uma tabela de um banco de dados grande. sendo que quero filtrar os seguintes números como exemplo:

018897
018898
018899
022900
035901
036902
085903
181904
182905
189906
184907
189908
218909
218910
318911
318912
318913
518914
918915
928916
938917

Então criando uma função mseleciona("b2:b22";"numero") deveria trazer de volta:

select * from 50e where numero="018897" or numero = "018898" or numero = "018899" or numero = "022900" or numero = "035901" or numero = "036902" or numero = "085903" or numero = "181904" or numero = "182905" or numero = "189906" or numero = "184907" or numero = "189908" or numero = "218909" or numero = "218910" or numero = "318911" or numero = "318912" or numero = "318913" or numero = "518914" or numero = "918915" or numero = "928916" or numero = "938917"

a função mseleciona seria digitada assim, mseleciona("b2:b22";"numero") , porém está retornando erro #valor.

Public Function mseleciona(tvar As Range, tcampo As String)

Dim wmatriz As Range
Dim wcomando, tcomando As String

wcomando = "Select * from 50e where " & tcampo & " = "

tcomando = wcomando

For Each wmatriz In Range(tvar)

If tcomando = wcomando Then
tcomando = IIf(wmatriz = "", tcomando, tcomando & """" & Format(wmatriz, "000000") & """")
Else
tcomando = IIf(wmatriz = "", tcomando, tcomando & " or " & tcampo & " = " & """" & Format(wmatriz, "000000") & """")

End If

Next wmatriz

mseleciona = tcomando

End Function

Alguém tem uma ideia do que estou fazendo errado?
A ideia é que qualquer quantidade de uma lista possa retornar o comando.

Desde já agradeço.
#2018
Com essa macro .. procedimento sub ... está funcionando pegando tudo que estiver na coluna A... ...consigo portanto o objetivo:

Sub MontaSelect()

Dim wcomando, tcomando As String

wcomando = "select * from 50e where numero = "
tcomando = wcomando

For x = 1 To 1000000

If Cells(x, 1) = "" Then GoTo fim

If wcomando = tcomando Then

wcomando = wcomando & """" & Format(Cells(x, 1).Value, "000000") & """"
Else

wcomando = wcomando & " or numero = " & """" & Format(Cells(x, 1).Value, "000000") & """"

End If

Next

fim:

Cells(1, 5) = wcomando


End Sub

Mas ainda gostaria de usar a função mseleciona, que seria mais completa. No aguardo:
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord