Discussion:
[Excel 2010] Dodanie kilku wierszy za pomocą makra
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Paweł
11 lat temu
Permalink
Witam

Chciałbym poprosić o sprawdzenie poniższego makra, dlaczego ono nie
działa tak jak powinno. Makro ma za zadanie znaleźć określone słowa,
zaznaczyć wiersz w którym zostały one znalezione, wstawić podział strony
w tym miejscu(nad wierszem), a także chciałbym później dodać aby
pomijało 1 wystąpienie znalezionego słowa, dodawało 5 pustych wierszy
nad wierszem z podziałem strony lub kopiowało 5 wierszy z innego
arkusza. Czyli w dokumencie na nowo podzielonym na strony, na końcu
każdej strony ma się skopiować 5 wierszy z innego arkusza.


Dim sheetOne As Worksheet
Dim szukana
Set sheetOne = Worksheets("Moje dane")

Dim totalRows, totalCols As Integer
totalRows = sheetOne.UsedRange.Rows.Count
totalCols = sheetOne.UsedRange.Columns.Count
szukana = "Adres Osoby"

Dim row, col As Integer
For row = 1 To totalRows
For col = 1 To totalCols
If sheetOne.Cells(row, col).Value Like "*" & szukana & "*" Then
Range(sheetOne.Cells(row, col)).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add
Before:=ActiveCell
ActiveCell.Offset(1).EntireRow.Insert
totalRows = totalRows + 1
Debug.Print totalRows
Exit For
End If
Next col
Next row

Obecnie to makro wyrzuca mi błąd nr 1004 - Method 'Range' of object
'_Global' failed.
Co robię źle i jak to poprawić ?

Pozdrawiam Paweł
Paweł
11 lat temu
Permalink
Witam
[...] Czyli w dokumencie na nowo podzielonym na strony, na końcu
każdej strony ma się skopiować 5 wierszy z innego arkusza.
Pozdrawiam Paweł
Poniższe makro robi mniej więcej to co chcę ale nadpisuje mi wiersz, w
którym znaleziona została szukana wartość, jak to poprawić?

Dim sheetOne As Worksheet
Dim szukana
Dim totalRows, totalCols As Integer
Dim MyRng As Range
Dim znalezione As Integer
Dim sourceBook As Workbook
Dim sourceSheet As Worksheet
Dim licznik

Set sourceBook = ActiveWorkbook
Set sheetOne = sourceBook.Worksheets("Moje dane")
totalRows = sheetOne.UsedRange.Rows.Count
totalCols = sheetOne.UsedRange.Columns.Count
szukana = "Adres zamieszkania"
znalezione = 0
licznik = 0



Dim row, col As Integer
col = 1
For row = 1 To totalRows
If sheetOne.Cells(row, col).Value Like "*" & szukana & "*" Then
znalezione = znalezione + 1
Debug.Print "znalezione=" & znalezione
Debug.Print "row=" & row & " col=" & col
If znalezione <> 1 Then
Set MyRng = ActiveWorkbook.Sheets("Moje
dane").Range("A" & row)
Debug.Print MyRng.Address
MyRng.Select
MyRng.Offset(-1, 0).EntireRow.Insert Shift:=xlDown
MyRng.Offset(-1, 0).EntireRow.Insert Shift:=xlDown
MyRng.EntireRow.Insert
ActiveWorkbook.Sheets("Moje dane").Activate
ActiveWorkbook.Sheets("TabWzor").Range("A1:U4").Copy
Destination:=Worksheets("Moje dane").Range("A" & row)
licznik = licznik + 1
totalRows = totalRows + 1
Debug.Print totalRows
End If

End If

Next row

Debug.Print "Licznik=" & licznik

Run DodajPodzialStron()

End Sub

Z góry dziękuję za pomoc i pozdrawiam Paweł

Loading...