Note: The other languages of the website are Google-translated. Back to English

Jak automatycznie wstawić wiersz na podstawie wartości komórki w programie Excel?

dokument-wstaw-wiersz-na podstawie-wartości-1
Załóżmy, że masz zakres danych i chcesz automatycznie wstawiać puste wiersze powyżej lub poniżej określonej wartości w programie Excel, na przykład automatycznie wstawiać wiersze poniżej wartości zerowej, jak pokazano na zrzucie ekranu. W programie Excel nie ma bezpośredniego sposobu rozwiązania tego zadania, ale mogę wprowadzić kod makra, aby automatycznie wstawiać wiersze na podstawie określonej wartości w programie Excel.
Wstaw wiersz poniżej na podstawie wartości komórki za pomocą VBA

Wstaw wiersz powyżej na podstawie wartości komórki za pomocą Kutools for Excel dobry pomysł 3

Aby wstawić wiersz na podstawie wartości komórki, uruchamiając VBA, wykonaj poniższe czynności:

1. naciśnij Alt + F11 klawisze jednocześnie i a Microsoft Visual Basic for Applications okno wyskakuje.

2. kliknij wstawka > Moduł, a następnie wklej poniższy kod VBA do poppingu Moduł okno.

VBA: Wstaw wiersz poniżej na podstawie wartości komórki.

Sub BlankLine()
	'Updateby20150203
	Dim Rng As Range
	Dim WorkRng As Range
	On Error Resume Next
	xTitleId                   = "KutoolsforExcel"
	Set WorkRng                = Application.Selection
	Set WorkRng                = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
	Set WorkRng                = WorkRng.Columns(1)
	xLastRow                   = WorkRng.Rows.Count
	Application.ScreenUpdating = False
	For xRowIndex = xLastRow To 1 Step - 1
		Set Rng                   = WorkRng.Range("A" & xRowIndex)
		If Rng.Value = "0" Then
			Rng.Offset(1, 0).EntireRow.Insert Shift: = xlDown
		End If
	Next
	Application.ScreenUpdating = True
End Sub

3. kliknij F5 klucz lub run przycisk, pojawi się okno dialogowe i wybierz kolumnę zawierającą zero. Zobacz zrzut ekranu:
dokument-wstaw-wiersz-na podstawie-wartości-2

4. kliknij OK. Następnie puste wiersze zostaną wstawione poniżej wartości zerowej.
dokument-wstaw-wiersz-na podstawie-wartości-3

Wskazówka:

1. Jeśli chcesz wstawić wiersze na podstawie innej wartości, możesz to zmienić 0 do dowolnej wartości, którą chcesz w VBA: Jeśli Rng.Value = "0" Wtedy.

2. Jeśli chcesz wstawić wiersze powyżej zera lub innej wartości, możesz użyć poniższego kodu VBA.

VBA: wstaw wiersz powyżej wartości zerowej:

Sub BlankLine()
	'Updateby20150203
	Dim Rng As Range
	Dim WorkRng As Range
	On Error Resume Next
	xTitleId                   = "KutoolsforExcel"
	Set WorkRng                = Application.Selection
	Set WorkRng                = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
	Set WorkRng                = WorkRng.Columns(1)
	xLastRow                   = WorkRng.Rows.Count
	Application.ScreenUpdating = False
	For xRowIndex = xLastRow To 1 Step - 1
		Set Rng                   = WorkRng.Range("A" & xRowIndex)
		If Rng.Value = "0" Then
			Rng.EntireRow.Insert Shift: = xlDown
		End If
	Next
	Application.ScreenUpdating = True
End Sub

dokument-wstaw-wiersz-na podstawie-wartości-4


Jeśli nie znasz VBA, możesz spróbować Kutools dla programu Excel's Wybierz określone komórki narzędzie, a następnie wstaw wiersze powyżej.

Kutools dla programu Excel, ponad 300 przydatne funkcje, ułatwiają pracę. 

Po zainstalowaniu Kutools dla programu Excel, wykonaj poniższe czynności:(Bezpłatne pobieranie Kutools dla programu Excel teraz!)

1. Wybierz listę, z której chcesz znaleźć określone komórki, i kliknij Kutools > Wybierz > Wybierz określone komórki. Zobacz zrzut ekranu:
doc wstaw wiersz na podstawie wartości 9

2. W wyświetlanym oknie dialogowym zaznacz Cały rząd opcję, a następnie przejdź do zaznaczenia Równa się od Określony typ list, a następnie wprowadź wartość, którą chcesz znaleźć w prawym polu tekstowym. Zobacz zrzut ekranu:
doc wstaw wiersz na podstawie wartości 6

3. kliknij Oki pojawi się okno dialogowe przypominające o liczbie wybranych wierszy, po prostu je zamknij.

4. Umieść kursor w jednym wybranym wierszu i kliknij prawym przyciskiem, aby wybrać wstawka z menu kontekstowego. Zobacz zrzut ekranu:
doc wstaw wiersz na podstawie wartości 7

Teraz wiersze są wstawiane powyżej na podstawie określonej wartości.
doc wstaw wiersz na podstawie wartości 8


Względne artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (43)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Chcę wkleić konkretną treść pod komórką poniżej. Jak to zrobić? Zamiast pustego wiersza chcę wstawić wartość w kilku kolumnach.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, chcę wstawić wiele wierszy na podstawie wartości Np. Chcę wstawić 1 pusty wiersz poniżej komórki o wartości 2, 2 wiersze poniżej komórki o wartości 3, 3 wiersze poniżej komórki o wartości 4 i tak dalej Czy możesz proszę pomóż mi z tym?
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy kiedykolwiek otrzymałeś na to odpowiedź? Próbuję zrobić to samo.

Miej listę pracowników z # tygodni urlopu, który dostają. Chcę wstawić wiersz na każdy tydzień. Będzie to 1, 2 lub 3 rzędy w zależności od tego, ile czasu zarobili. #s 1 2 3 są już w moim arkuszu kalkulacyjnym.
Ten komentarz został zminimalizowany przez moderatora na stronie
Chcę wstawiać wiersze na podstawie liczby, używając wartości komórki w jednym arkuszu kalkulacyjnym i wstawiając wiersze w innym arkuszu kalkulacyjnym.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki twojej wiadomości. Ale czy możesz opisać swoje pytanie bardziej szczegółowo? Jakie wiersze chcesz wstawić? Pusty? A gdzie chcesz wstawić w arkuszu? Jeśli możesz, daj mi zrzut ekranu. Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Kocham cię. Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
To było niesamowite!!. Dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak mogę wstawić więcej niż jeden wiersz?
Ten komentarz został zminimalizowany przez moderatora na stronie
Możesz spróbować tego VBA

Podrzędna pusta linia()
„Aktualizacja do 20150203”
Dim Rng jako zakres
Dim WorkRng jako zakres
Dim xInsertNum Tak długo
' Po błędzie wznowienia Dalej
xTitleId = "Kutools dla programu Excel"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type:=8)
Jeśli WorkRng to nic, wyjdź z Sub
xInsertNum = Application.InputBox("Liczba pustych wierszy, które chcesz wstawić", xTitleId, Type:=1)
Jeśli xInsertNum = False Wtedy
MsgBox " Liczba pustych wierszy, które chcesz wstawić ", vbInformation, xTitleId
Exit Sub
End If
Ustaw WorkRng = WorkRng.Kolumny(1)
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = Fałsz
Dla xRowIndex = xLastRow do 1 kroku -1
Ustaw Rng = WorkRng.Range("A" i xRowIndex)
Jeśli Rng.Value = "0" Wtedy
Rng.Resize(xInsertNum).EntireRow.Insert Shift:=xlDown
End If
Dalej
Application.ScreenUpdating = True
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
jeśli chcesz wstawić puste wiersze poniżej, spróbuj tego

Podrzędna pusta linia()
„Aktualizacja do 20150203”
Dim Rng jako zakres
Dim WorkRng jako zakres
Dim xInsertNum Tak długo
' Po błędzie wznowienia Dalej
xTitleId = "Kutools dla programu Excel"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type:=8)
Jeśli WorkRng to nic, wyjdź z Sub
xInsertNum = Application.InputBox("Liczba pustych wierszy, które chcesz wstawić", xTitleId, Type:=1)
Jeśli xInsertNum = False Wtedy
MsgBox " Liczba pustych wierszy, które chcesz wstawić ", vbInformation, xTitleId
Exit Sub
End If
Ustaw WorkRng = WorkRng.Kolumny(1)
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = Fałsz
Dla xRowIndex = xLastRow do 1 kroku -1
Ustaw Rng = WorkRng.Range("A" i xRowIndex)
Jeśli Rng.Value = "0" Wtedy
Rng.Offset(1, 0).Resize(xInsertNum).EntireRow.Insert Shift:=xlDown
End If
Dalej
Application.ScreenUpdating = True
End Sub

Poniższy służy do wstawiania wierszy powyżej.
Ten komentarz został zminimalizowany przez moderatora na stronie
HI Sunny, to makro działa dla mnie idealnie; po prostu musiałem zmienić liczbę wierszy na 30 i zmienić 0 na tekst: "Saldo zamknięcia". Ale teraz chcę skopiować i wkleić wybrane komórki o wysokości 30 wierszy do 30 pustych linii, które właśnie zostały wstawione przez to makro. Czy możesz zaproponować nowe makro (lub poprawkę do tego), aby skopiować i wkleić zakres do każdego 30 pustych linii. Nazwałem zakres do skopiowania i wklejenia „szablon”.
Ten komentarz został zminimalizowany przez moderatora na stronie
Potrzebuję ogromnej pomocy w tym temacie. Mam 2 kolumny, w pierwszej mam swój czas danych 1 01:01:2016, dni/miesiące/rok godzina/minuty/sekundy, a w drugiej kolumnie 05 odpowiednie dane związane z czasem.

Mój problem polega na tym, że chcę dodać czas danych między wierszami, ponieważ mam przerwy w dniach. Pierwsza linia to 1, a druga to np. 01, więc mam 01 dni. a ten kod nie działa dla mnie.

Czekamy na opinie, proszę! Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Możesz spróbować tego VBA

Sub WstawWartośćMiędzy()
„Aktualizacja 20130825”
Dim WorkRng jako zakres
Dim Rng jako zakres
Przyciemnij Arr jako wariant
Dim dic jako wariant
Ustaw dic = CreateObject("Skrypty.Słownik")
„Po błędzie wznowienia Dalej”
xTitleId = "Kutools for Excel"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A1").Wartość
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
interwał = liczba2 - liczba1
Redim outArr(1 do interwału + 1, 1 do 2)
Za każdy numer w WorkRng
dic(Rng.Value) = Rng.Offset(0, 1).Wartość
Dalej
Dla i = 0 Do przedziału
outArr(i + 1, 1) = ja + num1
Jeśli dic.Exists(i + num1) Wtedy
outArr(i + 1, 2) = dic(i + num1)
Więcej
outArr(i + 1, 2) = ""
End If
Dalej
Z WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
.Wartość = outArr
.Wybierz
Kończyć z
End Sub


Lub jeśli masz Kutools for Excel, możesz wypróbować tę funkcję:
Ten komentarz został zminimalizowany przez moderatora na stronie
Wielkie dzięki, wypróbowałem oba, pierwszy, ponieważ mam 1 wierszy danych, robię to dla wszystkich 500 wierszy i nic nie robię, myślę, że może ma ograniczenia dotyczące wierszy do użycia, i kiedy wybiorę tylko 500 pierwszych wierszy, na przykład, nie tworzy brakujących wierszy, zastępuje wiersze dla brakujących danych.

Innym problemem, który mam, jest to, że moje dane czasowe mają również Dzień/Miesiąc/Rok GG:MM:SS
Ten komentarz został zminimalizowany przez moderatora na stronie
Od 2 do 3 tworzy brakujące dane, które chcę ok, ale wartość z 03 jest eliminowana i są pewne dane czasowe, które są eliminowane, coś, czego też nie chcę
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszamy, że kod VBA ci nie pomógł, nie mogę znaleźć metody, która działa dla formatu daty i godziny. Jeśli w końcu znajdziesz rozwiązanie, czy możesz mnie o tym powiadomić? Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam ponownie Sunny, udało mi się edytować kod do tego (zmieniam linię num1 na A2 i With WorkRng.Range("A2:A100000").Resize(UBound(outArr, 1), UBound(outArr, 2) ):


Sub WstawWartośćMiędzy()
„Aktualizacja 20130825”
Dim WorkRng jako zakres
Dim Rng jako zakres
Przyciemnij Arr jako wariant
Dim dic jako wariant
Ustaw dic = CreateObject("Skrypty.Słownik")
„Po błędzie wznowienia Dalej”
xTitleId = "Kutools for Excel"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A2").Wartość
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
interwał = liczba2 - liczba1
Redim outArr(1 do interwału + 1, 1 do 2)
Za każdy numer w WorkRng
dic(Rng.Value) = Rng.Offset(0, 1).Wartość
Dalej
Dla i = 0 Do przedziału
outArr(i + 1, 1) = ja + num1
Jeśli dic.Exists(i + num1) Wtedy
outArr(i + 1, 2) = dic(i + num1)
Więcej
outArr(i + 1, 2) = ""
End If
Dalej
With WorkRng.Range("A2:A100000").Resize(UBound(outArr, 1), UBound(outArr, 2))
.Wartość = outArr
.Wybierz
Kończyć z
End Sub



Pokazuję ci wykresy, to nie działa w 100% bo nie tworzy czasu od A1 do A2
Ten komentarz został zminimalizowany przez moderatora na stronie
Oto moje pytanie i myślę, że jest to bardzo trudne ... czy istnieje kod vba, który dodaje nowy wiersz poniżej przefiltrowanej kolumny i kopiuje tylko pierwsze trzy komórki do dodanego nowego wiersza i kontynuuje to, aż użytkownik przestanie uderzać "wejdź" i odfiltruj przefiltrowane komórki?
Ten komentarz został zminimalizowany przez moderatora na stronie
Twoje pytanie jest nieco trudne i złożone, możesz umieścić pytanie na naszym forum, może ktoś może Ci odpowiedzieć. https://www.extendoffice.com/forum.html
Ten komentarz został zminimalizowany przez moderatora na stronie
cześć Chcę tylko zapytać, jak dodać wiersz, jeśli warunek jest taki, że dodawanie wiersza powinno być wykonane, gdy komórka ma już dane (dotyczy skoroszytu programu Excel z dużą ilością arkuszy :) Dzięki!
Ten komentarz został zminimalizowany przez moderatora na stronie
może ten kod vba może ci pomóc. Doda wiersze, jeśli powyższy wiersz nie jest pusty

Pomoc podrzędna ()
Licznik dim tak długo
Dla licznika = ActiveSheet.UsedRange.Rows.count Do 1 Krok -1
If Information.IsEmpty(Cells(count, 1)) = False Then Rows(count + 1).Wstaw
Następne liczenie
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, próbuję użyć tego kodu, aby wprowadzić wiersz, gdy zmienią się pierwsze 4 cyfry w komórce (jeśli to w ogóle możliwe)

Na przykład,
2222A
2222B
2223 tysięcy


linia zostanie wstawiona po 2222B, ponieważ trzecia liczba to 3, a nie 3

Dzięki chłopaki!!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Dzięki za to, mam jednak inny scenariusz, w którym muszę wstawić komórkę cingle pod wartością, która nie jest równa zero. Doceń każdą sugestię.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Gina, właśnie znalazłem kod do wstawienia pustego wiersza nad komórką, która nie jest pusta, może ktoś może go dostosować do twoich potrzeb.

Sub Wstaw_wiersze()
Dim LR tak długo, r tak długo

Application.ScreenUpdating = Fałsz
LR = Range("A" & Rows.Count).End(xlUp).Row
Dla r = LR Do 1 Krok -1
Jeśli Len(Range("A" & r).Value) > 0 Wtedy
Wiersze(r).Wstaw
End If
Następny r
Application.ScreenUpdating = True
End Sub

pochodzić z https://www.mrexcel.com/forum/excel-questions/548675-adding-blank-line-above-row-non-blank-cell.html
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, to jest bardzo pomocne. A gdybym chciał dodać dwie linijki poniżej i chciałem dodać więcej wartości. Na przykład chcę dodać dwie linie po wartości 26, a następnie dwie linie po 04, a lista jest długa. Jak dalej dodawać do vba? Przepraszam, że nadal jestem początkującym. Z góry dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Safa, może możesz wypróbować narzędzie Kutools do wstawiania pustych wierszy/kolumn.
Ten komentarz został zminimalizowany przez moderatora na stronie
Podrzędna pusta linia()
„Aktualizacja do 20150203”
Dim Rng jako zakres
Dim WorkRng jako zakres
On Error Resume Next
xTitleId = "Kutools for Excel"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type: = 8)
Ustaw WorkRng = WorkRng.Kolumny(1)
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = Fałsz
Dla xRowIndex = xLastRow do 1 kroku - 1
Ustaw Rng = WorkRng.Range("A" i xRowIndex)
Jeśli Rng.Value = "0" Wtedy
Rng.EntireRow.Insert Shift: = xlDown
End If
Dalej
Application.ScreenUpdating = True
End Sub


Potrzebuję tego do pracy za każdym razem, gdy wkładam coś do komórki, a także z większą liczbą zmiennych. Mam na myśli to, że jeśli umieszczę 2 w komórce, potrzebuję wstawić 2 wiersze, a nie tylko 1.
Ten komentarz został zminimalizowany przez moderatora na stronie
Potrzebuję makra do dodawania wierszy na podstawie kolumny ilościowej, w której jeśli ilość jest większa niż 1, wstawia liczbę wierszy -1. Jeśli ilość wynosi 5, wstawia 4 wiersze poniżej i uzupełnia dane i zmienia wywoływaną ilość z 5 na 1 w każdym wierszu. Pomiń wszystkie 1.
Ten komentarz został zminimalizowany przez moderatora na stronie
Podaj kod, w którym chcę dodać określoną liczbę wierszy na podstawie wartości komórki. na przykład, jeśli komórka zawiera cyfrę 18, automatycznie należy dodać 18 wierszy tam, gdzie chcę, a reszta tabeli/komórki powinna przesunąć się w dół.
Ten komentarz został zminimalizowany przez moderatora na stronie
Wielkie dzięki za to, naprawdę niesamowita oszczędność czasu. Czy byłoby możliwe dodanie kodu, który pozwoli mi wstawić tekst w nowym wierszu. Na przykład wstawiam nowe wiersze na podstawie wartości docelowej „x”, a następnie chcę dodać wartość tekstową „y” w komórce poniżej wartości docelowej „x”. czy to możliwe?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć. Makro działa dla mnie, ale czy istnieje sposób, aby zawsze ustawić zakres/parametry na kolumnę J bez pojawiania się w ogóle pola wprowadzania? Chciałbym pominąć krok nadchodzącego pola wprowadzania. Ponadto upewniłem się, że bezpośrednio przed tym makrem ostatni wiersz mojego poprzedniego makra to Range("J:J"). Zaznacz, aby upewnić się, że cała kolumna J jest już zaznaczona.
Tego używałem do tej pory.

Dim Rng jako zakres
Dim WorkRng jako zakres
On Error Resume Next
xTitleId = "Kliknij OK, aby kontynuować"
Ustaw WorkRng = Application.Selection
Ustaw WorkRng = Application.InputBox("Zakres", xTitleId, WorkRng.Address, Type:=8)
Ustaw WorkRng = WorkRng.Kolumny(1)
WyślijKlawisze "~"
xLastRow = WorkRng.Rows.Count
Application.ScreenUpdating = Fałsz
Dla xRowIndex = xLastRow do 1 kroku -1
Ustaw Rng = WorkRng.Range("A" i xRowIndex)
Jeśli Rng.Value = „Nowa linia GMS” Wtedy
Rng.EntireRow.Insert Shift:=xlDown
End If
Dalej


Próbowałem eksperymentować za pomocą polecenia SendKeys „~” między niektórymi krokami, aby spróbować automatycznie nacisnąć klawisz Enter, gdy pojawi się pole wprowadzania, ale to też nie zadziałało. Nie byłem pewien, gdzie dokładnie użyć polecenia SendKeys w makrze lub czy zadziałałoby to nawet z polem wprowadzania!
Ten komentarz został zminimalizowany przez moderatora na stronie
pomóż mi mieć dane. Mam dane z jednego miesiąca, w tym muszę wstawić puste wiersze zgodnie z czasem ucieczki
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, hr.babu08, przepraszam, że odpowiedź jest spóźniona. Myślę, że chcesz wstawić puste wiersze lub zaznaczyć brakujące dane sekwencji, jeśli tak, możesz wypróbować funkcję Kutools dla programu Excel Znajdź brakujący numer sekwencji. Oto samouczek dotyczący tej funkcji: https://www.extendoffice.com/product/kutools-for-excel/excel-find-missing-numbers-in-sequence.htmlIf chcesz inne metody wstawiania pustych wierszy dla brakującej sekwencji, odwiedź:https://www.extendoffice.com/documents/excel/3522-excel-find-missing-dates.html</div>;
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Czy to marco może być użyte/zmienione dla kolorowych komórek?
Muszę wstawić co najmniej 10 wierszy powyżej końca każdej serii, która jest pokolorowana.
Thx!
Ten komentarz został zminimalizowany przez moderatora na stronie
Muszę dodać określone wiersze z wartościami dla określonej zawartości komórki, ale nie wiem, jak to zrobić bez konieczności ręcznego wykonywania ponad 3800 linii

Np.: A1 = Węzeł1
Muszę wstawić wiersz i wprowadzić wartość Skaner
Wprowadź kolejny wiersz i wprowadź wartość Drukarka
kolejny wiersz z wartością CD.
Itp
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Chris, oto VBA może pomóc w automatycznym wstawieniu trzech wierszy (skaner, drukarka, płyta CD), gdy wartość jest równa Node1.
Sub BlankLine()
'ByExtendoffice
Dim Rng As Range

Dim WorkRng As Range

Dim xRngI As Range

On Error Resume Next

xTitleId = "KutoolsforExcel"

Set WorkRng = Application.Selection

Set WorkRng = Application.InputBox("Select a range", xTitleId, WorkRng.Address, Type:=8)

Set WorkRng = WorkRng.Columns(1)

xLastRow = WorkRng.Rows.Count

Application.ScreenUpdating = False

For xRowIndex = xLastRow To 1 Step -1

  Set Rng = WorkRng.Range("A" & xRowIndex)

  If Rng.Value = "Node1" Then

    Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown

    Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown

    Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown

    Rng.Offset(1, 0).Value = "Scanner"

    Rng.Offset(2, 0).Value = "Printer"

    Rng.Offset(3, 0).Value = "CD"

  End If

Next

Application.ScreenUpdating = True

End Sub

Daj mi znać, czy działa dla Ciebie.
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL