• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Excel - VBA Kopiowanie z innego pliku w pierwszą wolną komórkę nie działa

Object Storage Arubacloud
0 głosów
2,995 wizyt
pytanie zadane 29 czerwca 2016 w Visual Basic przez Zbigniew Andrysiak Bywalec (2,470 p.)

Witajcie.

W poniższym kodzie kopiuję dane z pliku nr 1 do pliku nr 2 dane. Chcę aby te dane zostały umieszczone w pierwszą wolną komórkę kolumny A. I teraz mój problem. W kodzie mam Funkcję pierwszypustywiersz i niestety makro robi mi tak, że jeśli w pliku nr 1 mam 1200 wierszy to makro wkleja dane od 1201 mimo, że w 1 komórka w pliku nr 2 jest pusta. Co robię źle?

Function PierwszyPustyWiersz(Optional Kolumna As String = "A")
   PierwszyPustyWiersz = Application.WorksheetFunction.CountA(ActiveSheet.Columns(Kolumna)) + 1
End Function

Sub DopiszDane()
Dim PustyWiersz As Long
 Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
    Dim wiersz As Long

    
'   Lista plików
    Filt = "Pliki arkusza kalkulacyjnego Excel (*.xls),*.xls," & _
           "Pliki arkusza kalkulacyjnego Excel (*.xlsx),*.xlsx," & _
           "Pliki używające przecinka jako separatora (*.csv),*.csv," & _
           "Wszystkie pliki (*.*),*.*"

'  Otwieranie pliku do importowania
    FilterIndex = 1
    Title = "Wybierz plik do zaimportowania"
    FileName = Application.GetOpenFilename( _
        filefilter:=Filt, _
        FilterIndex:=FilterIndex, _
         Title:=Title)

    If FileName = False Then
        MsgBox "Nie wybrano żadnego pliku."
        Exit Sub
    End If
   

    Set CopyFromWorkbook = Workbooks.Open(FileName)
    Set CopyFromWorksheet = CopyFromWorkbook.Worksheets(1)
    
    CopyFromWorksheet.Range("A1:Aa222").Copy
 
    ThisWorkbook.Worksheets(2).Range("A" & PierwszyPustyWiersz("A")).PasteSpecial Paste:=xlPasteValues
    CopyFromWorkbook.Close savechanges:=False
    

End Sub

 

1 odpowiedź

0 głosów
odpowiedź 29 czerwca 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)

Ok. Poradziłem sobie, ale wyskakuje mi error 1004 czy ktoś jest w stanie mi pomóc?

 

Sub DopiszDane()
Dim PustyWiersz As Long
 Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
    Dim wiersz As Long
 Application.DisplayAlerts = False 'wyłączenie komunikatów schowka
    Application.DisplayClipboardWindow = False 'wyłączenie komunikatów schowka

    
'   Lista plików
    Filt = "Pliki arkusza kalkulacyjnego Excel (*.xls),*.xls," & _
           "Pliki arkusza kalkulacyjnego Excel (*.xlsx),*.xlsx," & _
           "Pliki używające przecinka jako separatora (*.csv),*.csv," & _
           "Wszystkie pliki (*.*),*.*"

'  Otwieranie pliku do importowania
    FilterIndex = 1
    Title = "Wybierz plik do zaimportowania"
    FileName = Application.GetOpenFilename( _
        filefilter:=Filt, _
        FilterIndex:=FilterIndex, _
         Title:=Title)

    If FileName = False Then
        MsgBox "Nie wybrano żadnego pliku."
        Exit Sub
    End If
   

    Set CopyFromWorkbook = Workbooks.Open(FileName)
    Set CopyFromWorksheet = CopyFromWorkbook.Worksheets(1)
    
    CopyFromWorksheet.Range("a2", Range("a2").End(xlDown).End(xlToRight)).Copy
    'CopyFromWorksheet.Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0).Copy
    Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
  
    CopyFromWorkbook.Close savechanges:=True
  Application.CutCopyMode = True
 
    

End Sub

 

Podobne pytania

0 głosów
0 odpowiedzi 1,123 wizyt
0 głosów
0 odpowiedzi 1,018 wizyt
pytanie zadane 6 sierpnia 2018 w Visual Basic przez SUNBIN Obywatel (1,190 p.)
0 głosów
2 odpowiedzi 4,956 wizyt

92,551 zapytań

141,399 odpowiedzi

319,530 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...