Quero inserir uma instrução if em uma célula por meio de vba que inclui aspas duplas.
Aqui está o meu código:
Worksheets("Sheet1").Range("A1").Value = "=IF(Sheet1!B1=0,"",Sheet1!B1)"
Devido a aspas duplas, estou tendo problemas para inserir a string. Como faço para lidar com aspas duplas?
excel
vba
double-quotes
user793468
fonte
fonte
Respostas:
Acho que a maneira mais fácil é dobrar as cotações para lidar com uma cotação.
Algumas pessoas gostam de usar CHR (34) *:
* Nota: CHAR () é usado como uma fórmula de célula do Excel, por exemplo, escrevendo "= CHAR (34)" em uma célula, mas para o código VBA você usa a função CHR ().
fonte
Outra solução alternativa é construir uma string com um caractere substituto temporário. Em seguida, você pode usar REPLACE para alterar cada caractere temporário para aspas duplas. Eu uso til como o caractere substituto temporário.
Aqui está um exemplo de um projeto em que estou trabalhando. Esta é uma pequena rotina de utilidade para reparar uma fórmula muito complicada se / quando a célula for pisada acidentalmente. É uma fórmula difícil de entrar em uma célula, mas esse pequeno utilitário a corrige instantaneamente.
Este é realmente apenas um truque de programação simples, mas torna muito fácil inserir a fórmula em seu código VBA.
fonte
Todas as aspas duplas dentro das aspas que circundam a string devem ser alteradas para o dobro. Como exemplo, tive uma das strings de arquivo json: "entrega": "Padrão", No Editor Vba mudei para "" "entrega" ":" "Padrão" "," e tudo funciona corretamente. Se você tiver que inserir muitas strings semelhantes, minha proposta primeiro, insira-as todas entre "", em seguida, com o editor VBA substitua "dentro de" ". Se você cometer um erro, o editor VBA mostra esta linha em vermelho e você corrigirá esse erro.
fonte
Prefiro a resposta da tabSF. implementando o mesmo em sua resposta. aqui abaixo está minha abordagem
fonte
Eu escrevi uma pequena rotina que copia a fórmula de uma célula para a área de transferência, que pode ser facilmente colada no Editor do Visual Basic.
Foi postado originalmente na seção Vault dos fóruns Chandoo.org .
fonte