Во-первых, это мой первый пост в этом сообществе, поэтому, пользуясь случаем, я бы хотел поздороваться :). Я хотел бы попросить о помощи, потому что я застрял с кодом VBA более недели, и у меня нет ни малейшего понятия, как его решить.
Ниже приведен код VBA для экспорта электронной таблицы в XML сформироваться. Дело в том, что я сделал здесь oop, что вызывает повторяющиеся данные, и я не могу его найти. Вторая проблема связана с тем, что макросы печатают только данные из первых ячеек, игнорируя другие. Наконец, эта электронная таблица имеет своего рода раздел определенных данных, и было бы идеально, если бы у пользователя была возможность выбрать, что нужно печатать.
Сможете ли вы помочь?
Sub i()
Dim start As Worksheet
Dim cell1 As Range
Dim rng As Range
Dim reci As Worksheet
Dim blas As String
Set reci = Sheets("Input")
Set start = Sheets("start")
Set rng = reci.Range("A2:A" & reci.Cells(reci.Rows.Count, "A").End(xlUp).Row)
Open Application.ThisWorkbook.Path & "\" & Format(Now, "ddmmyy-hhmmss") & "_input.xml" For Output As #1
'Title
Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>"
Print #1, "<dpiva version=""05"" xmlns=""http://www.at.gov.pt/schemas/dpiva"">"
Print #1, "<rosto>"
Print #1, "<apuramento>"
Print #1, "<btBensUELiquidadoDeclarante>" & cell1.Offset(0, 1).Value & "</btBensUELiquidadoDeclarante>"
Print #1, "<btBensUETotal>" & cell1.Offset(0, 2).Value & "</btBensUETotal>"
Print #1, "<btImportDeclarante>" & cell1.Offset(0, 3).Value & "</btImportDeclarante>"
Print #1, "<btOperacoesIsentasComDeducao>" & cell1.Offset(0, 4).Value & "</btOperacoesIsentasComDeducao>"
Print #1, "<btOperacoesIsentasSemDeducao>" & cell1.Offset(0, 5).Value & "</btOperacoesIsentasSemDeducao>"
Print #1, "<btServicosUE>" & cell1.Offset(0, 6).Value & "</btServicosUE>"
Print #1, "<btTaxaNormal>" & cell1.Offset(0, 7).Value & "</btTaxaNormal>"
Print #1, "<btTotal>" & cell1.Offset(0, 8).Value & "</btTotal>"
Print #1, "<btTransmissoesUEIsentas>" & cell1.Offset(0, 9).Value & "</btTransmissoesUEIsentas>"
Print #1, "<ivaARecuperar>" & cell1.Offset(0, 10).Value & "</ivaARecuperar>"
Print #1, "<ivaBensUELiquidadoDeclarante>" & cell1.Offset(0, 11).Value & "</ivaBensUELiquidadoDeclarante>"
Print #1, "<ivaBensUETotal>" & cell1.Offset(0, 12).Value & "</ivaBensUETotal>"
Print #1, "<ivaDedutivelExistenciasTaxaNormal>" & cell1.Offset(0, 13).Value & "</ivaDedutivelExistenciasTaxaNormal>"
Print #1, "<ivaDedutivelImobilizado>" & cell1.Offset(0, 14).Value & "</ivaDedutivelImobilizado>"
Print #1, "<ivaDedutivelOutros>" & cell1.Offset(0, 15).Value & "</ivaDedutivelOutros>"
Print #1, "<ivaDedutivelTotal>" & cell1.Offset(0, 16).Value & "</ivaDedutivelTotal>"
Print #1, "<ivaFavorEstadoTotal>" & cell1.Offset(0, 17).Value & "</ivaFavorEstadoTotal>"
Print #1, "<ivaFavorSujPassivoTotal>" & cell1.Offset(0, 18).Value & "</ivaFavorSujPassivoTotal>"
Print #1, "<ivaImportDeclarante>" & cell1.Offset(0, 19).Value & "</ivaImportDeclarante>"
Print #1, "<ivaServicosUE>" & cell1.Offset(0, 20).Value & "</ivaServicosUE>"
Print #1, "<ivaTaxaNormal>" & cell1.Offset(0, 21).Value & "</ivaTaxaNormal>"
Print #1, "<regularizacoesFavorEstado>" & cell1.Offset(0, 22).Value & "</regularizacoesFavorEstado>"
Print #1, "<regularizacoesFavorSujPassivoNaoComunicadasCobranca>" & cell1.Offset(0, 23).Value & "</regularizacoesFavorSujPassivoNaoComunicadasCobranca>"
Print #1, "<temOperacoesAdquirenteComLiqImposto>" & cell1.Offset(0, 24).Value & "</temOperacoesAdquirenteComLiqImposto>"
Print #1, "<temOperacoesComLiqImposto>" & cell1.Offset(0, 25).Value & "</temOperacoesComLiqImposto>"
Print #1, "<temOperacoesDedutiveis>" & cell1.Offset(0, 26).Value & "</temOperacoesDedutiveis>"
Print #1, "<temOperacoesSemLiqImposto>" & cell1.Offset(0, 27).Value & "</temOperacoesSemLiqImposto>"
Print #1, "</apuramento>"
Print #1, "<desenvolvimento>"
Print #1, "<operacoesPTFeitasPorContribuintesForaUE>" & cell1.Offset(0, 28).Value & "</operacoesPTFeitasPorContribuintesForaUE>"
Print #1, "<totalQuadro06A>" & cell1.Offset(0, 29).Value & "</totalQuadro06A>"
Print #1, "</desenvolvimento>"
Print #1, "<inicio>"
Print #1, "<anoDeclaracao>" & cell1.Offset(0, 30).Value & "</anoDeclaracao>"
Print #1, "<apresentouDeclRecapitulativa>" & cell1.Offset(0, 31).Value & "</apresentouDeclRecapitulativa>"
Print #1, "<localizacaoSede>" & cell1.Offset(0, 32).Value & "</localizacaoSede>"
Print #1, "<nif>" & cell1.Offset(0, 33).Value & "</nif>"
Print #1, "<nifCC>" & cell1.Offset(0, 34).Value & "</nifCC>"
Print #1, "<periodoDeclaracao>" & cell1.Offset(0, 35).Value & "</periodoDeclaracao>"
Print #1, "<prazo>" & cell1.Offset(0, 36).Value & "</prazo>"
Print #1, "<semOperacoes>" & cell1.Offset(0, 37).Value & "</semOperacoes>"
Print #1, "<temAnexoRAcores>" & cell1.Offset(0, 38).Value & "</temAnexoRAcores>"
Print #1, "<temAnexoRContinente>" & cell1.Offset(0, 39).Value & "</temAnexoRContinente>"
Print #1, "<temAnexoRMadeira>" & cell1.Offset(0, 40).Value & "</temAnexoRMadeira>"
Print #1, "</inicio>"
Print #1, "</rosto>"
Print #1, "<anexoCampo40R>"
Print #1, "<regularizacoes>"
Print #1, "<campo40Total>" & cell1.Offset(0, 41).Value & "</campo40Total>"
Print #1, "<certificacoesROC/>"
Print #1, "<lista78ANum2A/>"
Print #1, "<lista78ANum4/>"
Print #1, "<lista78BNum4/>"
Print #1, "<listaNum2E3E6>"
Print #1, "<listaNum2E3E6Item>"
Print #1, "<anoEmissao>" & cell1.Offset(0, 46).Value & "</anoEmissao>"
Print #1, "<artigo>" & cell1.Offset(0, 47).Value & "</artigo>"
Print #1, "<btRegularizacoes>" & cell1.Offset(0, 48).Value & "</btRegularizacoes>"
Print #1, "<ivaRegularizado>" & cell1.Offset(0, 49).Value & "</ivaRegularizado>"
Print #1, "<mesEmissao>" & cell1.Offset(0, 50).Value & "</mesEmissao>"
Print #1, "</listaNum2E3E6Item>"
Print #1, "</listaNum2E3E6>"
Print #1, "<listaNum7Antes2013/>"
Print #1, "<listaNum7Em2013EDepois/>"
Print #1, "<listaNum8BCDE/>"
Print #1, "</regularizacoes>"
Print #1, "</anexoCampo40R>"
Print #1, "<anexoCampo41R>"
Print #1, "<regularizacoes>"
Print #1, "<btOutrasRegularizacoes>" & cell1.Offset(0, 54).Value & "</btOutrasRegularizacoes>"
Print #1, "<campo41Total>" & cell1.Offset(0, 55).Value & "</campo41Total>"
Print #1, "<ivaOutrasRegularizacoes>" & cell1.Offset(0, 56).Value & "</ivaOutrasRegularizacoes>"
Print #1, "<lista78CNum1/>"
Print #1, "<lista78CNum3/>"
Print #1, "<listaNum12/>"
Print #1, "<listaNum3E4E6>"
Print #1, "<listaNum3E4E6Item>"
Print #1, "<artigo>" & cell1.Offset(0, 60).Value & "</artigo>"
Print #1, "<btRegularizacoes>" & cell1.Offset(0, 61).Value & "</btRegularizacoes>"
Print #1, "<ivaRegularizado>" & cell1.Offset(0, 62).Value & "</ivaRegularizado>"
Print #1, "<nif>" & cell1.Offset(0, 63).Value & "</nif>"
Print #1, "</listaNum3E4E6Item>"
Print #1, "<listaNum3E4E6Item>"
Print #1, "<listaNum7/>"
Print #1, "<listaNum8D/>"
Print #1, "</regularizacoes>"
Print #1, "</anexoCampo41R>"
Print #1, "<clientes id=""1907"">"
Print #1, "<relacao>"
Print #1, "<anoDeducao>" & cell1.Offset(0, 67).Value & "</anoDeducao>"
Print #1, "<exportacaoBens>"
Print #1, "<exportacaoBensItem>"
Print #1, "<numeroDeclaracaoExportacao>" & cell1.Offset(0, 68).Value & "</numeroDeclaracaoExportacao>"
Print #1, "<valorEuros>" & cell1.Offset(0, 69).Value & "</valorEuros>"
Print #1, "</exportacaoBens>"
Print #1, "</exportacaoBensItem>"
Print #1, "<operacoesClientesNacionais>"
Print #1, "<operacoesClientesNacionaisItem>"
Print #1, "<nifCliente>" & cell1.Offset(0, 70).Value & "</nifCliente>"
Print #1, "<valorEuros>" & cell1.Offset(0, 71).Value & "</valorEuros>"
Print #1, "</operacoesClientesNacionaisItem>"
Print #1, "</operacoesClientesNacionais>"
Print #1, "<operacoesNoEstrangeiro>" & cell1.Offset(0, 72).Value & "</operacoesNoEstrangeiro>"
Print #1, "<outrasOperacoesIsentasComDireitoDeducao>" & cell1.Offset(0, 73).Value & "</outrasOperacoesIsentasComDireitoDeducao>"
Print #1, "<periodoDeducao>" & cell1.Offset(0, 74).Value & "</periodoDeducao>"
Print #1, "<total>" & cell1.Offset(0, 75).Value & "</total>"
Next
Print #1, "</relacao>"
Print #1, "</clientes>"
Print #1, "</dpiva>"
Close #1
End Sub