Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 67445 Skopiuj do schowka Kopia danych z excel do ostaniego wiersza w .doc
Autor Wiadomość
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 11:02   Kopia danych z excel do ostaniego wiersza w .doc

Witam,
Nie mogę sobie poradzić z wklejeniem danych do ostatniego wiersza w .doc
makro ładnie otwiera mój plik z szablonem i teraz chciałbym aby można było wklejać dane z Excela do Word ale niestety nie mogę sobie z tym poradzić. Proszę o pomoc w temacie.
Kod:


Option Explicit

Sub GNSS_03_RAPORT_EXPORT_DO_WORD()

'=doc
Dim appWD As Object
'Dim Myrange As Excel.Range
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
'adres stacjonarny:
appWD.Documents.Open ("E:\sciezka\test.docx")


'=doc

Dim ostatni_wiersz_punkty_kontrolne     As Long
Dim pomiar_punktow_kontrolnych_opis     As String
Dim pomiar_punktow_osnowy               As String
Dim zakres_poczatek                     As String
Dim zakres_koniec                       As String

'opis raportu 1-3 pkt
Dim data_utworzenia                     As String
Dim godz_utworzenia                     As String
Dim modelgeoidy                         As String
Dim Nazwa_pliku                         As String
Dim nazwa_odwzorowania                  As String
Dim uklad_wsp                           As String

'====================

'strefa 5
Dim Y_5 As String
Y_5 = "5500000.00000"
Dim dlugpg_5 As String
dlugpg_5 = "16.6667g"
Dim odwzorowanie_5 As String
odwzorowanie_5 = "Gauss-Kruger2000/5"
'======================================

'strefa 6
Dim Y_6 As String
Y_6 = "6500000.00000"
Dim dlugpg_6 As String
dlugpg_6 = "20.0000g"
Dim odwzorowanie_6 As String
odwzorowanie_6 = "Gauss-Kruger2000/6"
'======================================

'strefa 7
Dim Y_7 As String
Y_7 = "7500000.00000"
Dim dlugpg_7 As String
dlugpg_7 = "23.3333g"
Dim odwzorowanie_7 As String
odwzorowanie_7 = "Gauss-Kruger2000/7"
'======================================

'strefa 8
Dim Y_8 As String
Y_8 = "8500000.00000"
Dim dlugpg_8 As String
dlugpg_8 = "26.6667g"
Dim odwzorowanie_8 As String
odwzorowanie_8 = "Gauss-Kruger2000/8"
'======================================

'objasnienia = Worksheets("GNSS_RAPORT_TEKST_EXPORT").Range("A1:A13")

Dim zakres_punkty_kontrolne             As Range
Dim j_zakres_punkty_kontrolne           As Integer


ostatni_wiersz_punkty_kontrolne = Worksheets("GNSS_DANE").Range("B18").Value
j_zakres_punkty_kontrolne = ostatni_wiersz_punkty_kontrolne

Set zakres_punkty_kontrolne = Worksheets("GNSS_RAPORT_PK_EXPORT").Range("A" & 1 & ":" & "P" & j_zakres_punkty_kontrolne)
zakres_punkty_kontrolne.Copy

Dim wdDoc As Word.Document
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Paste


ActiveDocument.Range(ActiveDocument.Range.End - 1, ActiveDocument.Range.End).Paste

'Set appWD = Nothing





End Sub




kopia_do_word.xlsm
Pobierz Plik ściągnięto 33 raz(y) 16.4 KB

test.docx
Pobierz Plik ściągnięto 32 raz(y) 11.28 KB

_________________
XYZ
ID posta: 383054 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 11:35   

GEO-XYZ napisał/a:
Nie mogę sobie poradzić z wklejeniem danych do ostatniego wiersza w .doc

Zakres do kopiowanie wpisany na sztywno
Plik worda w tej samej lokalizacji co skoroszyt
Janusz

kopia_do_word.xlsm
Pobierz Plik ściągnięto 37 raz(y) 19.38 KB

test.docx
Pobierz Plik ściągnięto 34 raz(y) 11.59 KB

ID posta: 383059 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 12:04   

J_B, Działa super / pojawił się następny problem - gubi formatowanie - najwiekszy problem jest z kolumną C gdzie jest czas. Da radę coś z tym zrobić? Nie wiem ustawić tylko format dla kolumny C ?
_________________
XYZ
ID posta: 383061 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 12:22   

GEO-XYZ napisał/a:
Da radę coś z tym zrobić? Nie wiem ustawić tylko format dla kolumny C ?

U mnie data jest w kolumnie B i jest wszystko ok
Przecież w wordzie wszystko jest chyba tekstem i jak wkleisz tak bedzie
Jak wygląda formatowanie sprawdź załącznik
Janusz

test.docx
Pobierz Plik ściągnięto 34 raz(y) 13.79 KB

ID posta: 383063 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 13:08   

J_B, Witam,
Również masz źle - 0,389722222 zamiast godziny - Chodzi o kolumnę C

GEO-XYZ w dniu: 2020-03-04, 13:23 napisał/a:
J_B,
Gdzie mam błąd:
Chciałbym aby makro zrobiło 1 wiersz przerwy między kopiowanymi treściami

Jak zmienić kod?
Kod:

wdDoc.Range(wdDoc.Range.End-1 , wdDoc.Range.End).Paste


edycja Zbiniek:
Proszę korzystać z opcji edytowania wypowiedzi – przycisk „edytuj”. Opcja jest dostępna bodajże przez 30 minut od momentu wysłania wypowiedzi.
_________________
XYZ
ID posta: 383071 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 13:27   

GEO-XYZ napisał/a:
Również masz źle

Załączam plik jpg pokazujący co jest w excelu a co zostało skopiowane do worda
Ja nie widzą tam żadnej różnicy jak ty widzisz to otwórz obrazek w paint-cie i zaznacz gdzie widzisz niezgodność
Może ja już naprawdę jestem ślepy :-(

Janusz

Word.jpg
Plik ściągnięto 6 raz(y) 258.94 KB

ID posta: 383073 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 13:35   

J_B, Zwracam honor :) znowu ja coś namieszałem.
Jesteś w stanie coś wymyślić na temat wiersza przerwy ?
_________________
XYZ
ID posta: 383074 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 14:07   

GEO-XYZ napisał/a:
Jesteś w stanie coś wymyślić na temat wiersza przerwy ?

Nie jestem specjalistą od worda lecz jak nie można inaczej to zrób tak
przed linią kopiującą dane z excela dodaj (można w pętli jak będzie mały odstęp)
Kod:

Dim x As Integer
For x = 1 To 2
  wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
Next

Jak starczy 1 linia to bez pętli
Janusz
ID posta: 383077 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 14:25   

J_B, Super o to chodziło :)

GEO-XYZ w dniu: 2020-03-04, 14:49 napisał/a:
J_B, Pytanie, czy za każdym razem muszę dodawać nową zmienną x1 x2 x3 integer ? jeżeli chce znowu znaleźć i skopiować dane do ostatniego wiersza ?

edycja Zbiniek:
Proszę korzystać z opcji edytowania wypowiedzi – przycisk „edytuj”. Opcja jest dostępna bodajże przez 30 minut od momentu wysłania wypowiedzi.
_________________
XYZ
ID posta: 383079 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 15:00   

GEO-XYZ napisał/a:
czy za każdym razem muszę dodawać nową zmienną x1 x2 x3 integer ?

Jaśniej nie wiem o co chodzi z tym x1 x2 x3 ?
czy chodzi o ilość przejść w pętli ?
Kod:
Dim x As Integer, IleRazy As Integer
IleRazy =3' tu decydujesz ile razy pętla ma się wykonać
For x = 1 To IleRazy
  wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
Next


Janusz
ID posta: 383083 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 15:02   

J_B,

Kod:

Dim x As Integer
For x = 1 To 2
  wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
Next
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Paste


to jest pierwszy blok danych teraz po wklejeniu - mam nowy adres ostatniego wiersza i znowu chce wkleić nowy zakres danych z excela więc zastosowanie zmiennej x - nie jest możliwe musze mieć nową zmienną
_________________
XYZ
ID posta: 383084 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 15:08   

GEO-XYZ napisał/a:
więc zastosowanie zmiennej x - nie jest możliwe musze mieć nową zmienną

Dlaczego tak sądzisz ???
Ok zostaw te pętle w spokoju i zrób tak
przed każdą linią kopiującą dane z excela dodaj
Kod:

wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
'to doda 2 linie

Janusz
ID posta: 383087 Skopiuj do schowka
 
 
GEO-XYZ 
Exceloholic


Wersja: Win Office 2013
Posty: 235
Wysłany: 04-03-2020, 16:55   

J_B, Działa wszystko ok:) Dziękować :)
_________________
XYZ
ID posta: 383090 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3015 razy
Posty: 9948
Wysłany: 04-03-2020, 19:31   

J_B napisał/a:
Kod:
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & vbNewLine
'to doda 2 linie
A co się stanie jeśli napiszemy tak:
Kod:
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & String(2, vbNewLine)
:?:

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 383104 Skopiuj do schowka
 
 
J_B 
Excel Expert


Wersja: Win Office 2016
Pomógł: 463 razy
Posty: 1167
Wysłany: 04-03-2020, 20:00   

Artik napisał/a:
A co się stanie jeśli napiszemy tak:

Kod:
wdDoc.Range(wdDoc.Range.End - 1, wdDoc.Range.End).Text = "" & String(2, vbNewLine)

Muszę odpowiedzieć ? :-(
Janusz
ID posta: 383109 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe