Não é possível copiar o valor do parâmetro 'ByRef' '<parametername>' para o argumento correspondente por que o tipo '<typename1>' não pode ser convertido para o tipo '<typename2>'
Um procedimento é declarado com um tipo de parâmetro que não pode ser convertido para o tipo do argumento chamado.
Quando você define uma classe ou estrutura, você pode definri um ou mais operadores de conversão para converter aquela tipo classe ou estrutura para outros tipos.Você também pode definir operadores de conversão reversa para converter aqueles outros tipos de volta para seu tipo de classe ou estrutura.Quando você usa sua classe ou tipo de estrutura numa chamada de procedimento, Visual Basic pode usar esses operadores de conversão para converter o tipo de um argumento para o tipo de seu parâmetro correspondente.
Se você passar o argumento ByRef, Visual Basic algumas vezes copia o valor do argumento para um variável local no procedimento em vez de passar uma referência.Nesse caso, quando o procedimento retona, Visual Basic deve copiar o valor da variável local de volta para o argumento no código que chamou.
Se um valor de argumento ByRef é copiado no procedimento e o argumento e parâmetro são do mesmo tipo, não é necessária nenhuma conversão.Mas se os tipos são diferentes, Visual Basic deve converter em ambas as direções.Se um dos tipos é sua classe ou tipo de estrutura, Visual Basic deve convertê-lo tanto de quanto para o outro tipo.Isso significa que você deve definir operadores de conversão em ambas as direções.
ID de erro: BC33037
Para corrigir este erro
Se possível, use um argumento chamando do mesmo tipo que o parâmetro do procedimento, dessa forma o Visual Basic não precisa fazer nenhuma conversão.
Se você precisar chamar o procedimento com um tipo de argumento diferente do tipo de parâmetro mas não precisa de retornar um valor no argumento chamante, defina o parâmetro para ser ByVal em vez de ByRef.
Se você precisa retornar um valor no argumento chamante, defina o operadort de coversão reversa de forma que Visual Basic possa converter de volta para o tipo do argumento chamante.
Consulte também
Tarefas
Como: Define a Conversion operador
Conceitos
Parâmetros do procedimento e argumentos
Argumento Passing By valor e por referência