• 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

VPS Starter Arubacloud
0 głosów
3,017 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,211 wizyt
0 głosów
0 odpowiedzi 1,115 wizyt
pytanie zadane 6 sierpnia 2018 w Visual Basic przez SUNBIN Obywatel (1,190 p.)
0 głosów
2 odpowiedzi 5,108 wizyt

92,768 zapytań

141,691 odpowiedzi

320,508 komentarzy

62,106 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

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!

...