İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Excel-də cell dəyərinə əsaslanan satırı necə əlavə etmək olar?

Doc-insert-row-based-on-value-1
Bir sıra məlumatınız var və məsələn, Excel-də müəyyən bir dəyərdən yuxarı və ya aşağıda boş sətirlər daxil edin, məsələn, sıfır dəyərinin altına avtomatik olaraq daxil olan satırlar aşağıda göstərilən ekran görüntüsü kimi göstərilir. Exceldə bu tapşırığı heç bir yolla həll edə bilməz, amma Excel-də müəyyən bir dəyərə əsaslanan satırları avtomatik olaraq yerləşdirmək üçün Macro kodunu təqdim edə bilərəm.
VBA ilə hücum dəyərinə əsasən aşağıdakı satırı daxil edin

Excel-də Kutools ilə cell dəyərinə əsaslanan yuxarıdakı satırı daxil edin yaxşı fikir3

Excel-də bir və ya iki meyar ilə Cells / Rows / Columns seçin

Excel üçün Kutools Specific Cells seçmək hüququ bir meyar və ya iki meyar əsasında bir aralıqdakı bütün hüceyrələri və ya satırları və ya sütunları seçə bilər. 60 gün pulsuz sınaq üçün tıklayın!
doc xNUMX xüsusi hüceyrəni seçin
Excel üçün Kutools: 300 gündə heç bir məhdudiyyət olmadan cəhd etmək üçün 60-dən çox lazımlı Excel eklentisi ilə.

VBA'yı çalıştırarak mobil dəyərə əsaslanan satırı daxil etmək üçün aşağıdakı adımları edin:

formula Artıq Excel-də uzun müddətli düsturlar barədə narahat olmayın! Excel üçün Kutools's Avtomatik mətn bütün formulları bir qrupa əlavə edə bilərsiniz
avtomatik mətn kimi, və beyninizi azad edin! Avtomatik mətni bilmək üçün buraya vurun Pulsuz sınaq almaq üçün bura vurun

1. Basın Alt + F11 eyni zamanda düymələri və Proqramlar üçün Microsoft Visual Basic pəncərə çıxır.

2. klik Taxmaq > Modules, sonra VBA kodunun altına qoyun Modules pəncərə.

VBA: Cell dəyərinə əsasən aşağıdakı satırı daxil edin.

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. klik F5 açar və ya qaçış düyməsini, bir dialoq çıxdıqda və sütun sıfırı seçin. Ekran görüntüsünə baxın:
Doc-insert-row-based-on-value-2

4. klik OK. Sonra sıfır dəyərin altına boşluq qoyulur.
Doc-insert-row-based-on-value-3

Uc:

1. Digər dəyərlərə əsasən satırlar əlavə etmək istəyirsinizsə, dəyişə bilərsiniz 0 VBA-da istədiyiniz hər hansı bir dəyərə: Rng.Value = "0" Sonra.

2. Sıfır və ya digər dəyərlərdən yuxarıdakı satırlar daxil etmək istəyirsinizsə, aşağıdakı vba kodunu istifadə edə bilərsiniz.

VBA: Sıfır dəyərdən yuxarı satırı daxil edin:

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

Doc-insert-row-based-on-value-4


VBA ilə tanış deyilsinizsə, cəhd edə bilərsiniz Excel üçün Kutools's Xüsusi Hüceyrələri seçin kommunal və sonra yuxarıda satır daxil edin.

Excel üçün Kutools, daha çox 300 lazımlı funksiyaları, işinizi daha asanlaşdırır.

Quraşdırıldıqdan sonra Excel üçün Kutools, aşağıdakıları edin:(Excel İndi Pulsuz İndir Kutools!)

1. Xüsusi hüceyrələri tapmaq istədiyiniz siyahı seçin və vurun Kutools > seçmək > Xüsusi Hüceyrələri seçin. Ekran görüntüsünə baxın:
9 dəyərinə əsaslanan doc əlavə satır

2. Popping dialoqunda yoxlayın Bütün satır seçimi seçin və seçin bərabər etibarən Xüsusi tip siyahısı və sağ mətn qutusunda tapmaq istədiyiniz dəyəri daxil edin. Ekran görüntüsünə baxın:
6 dəyərinə əsaslanan doc əlavə satır

3. klik Ok, və seçilmiş satırların sayını xatırlatmaq üçün bir dialoq çıxır, sadəcə onu bağlayın.

4. Bir seçilmiş satırda imleci yerləşdirin və seçmək üçün sağ basın Taxmaq kontekst menyusundan. Ekran görüntüsünə baxın:
7 dəyərinə əsaslanan doc əlavə satır

İndi satırlar müəyyən bir dəyər əsasında yuxarıda daxil edilir.
8 dəyərinə əsaslanan doc əlavə satır


Əlaqədar məqalələr:

Sekmeli tarama ve birden çox Excel iş kitabını / Word sənədlərini Firefox, Chrome, İnternet olaraq redaktə edin 10 araşdırın!

Firefox / Chrome / IE-də birdən çox veb səhifəni keçirmək üçün tanış ola bilərsiniz və asanlıqla müvafiq sekmeleri asanlıqla tıklayaraq onların arasında keçid edə bilərsiniz. Office Tab, bir Excel iş kitabını və ya Word sənədlərini bir Excel pəncərəsində və ya Word pencerəsində gözdən keçirmək və onların sekmelerini tıklayarak asanlıqla keçmək üçün imkan verən oxşar emal dəstəkləyir. Office Tab-ın 45-gün sınaq üçün basın!

ot excel


Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Gina · 4 months ago
    Hi, Thanks for this, however I have another scenario where I need to insert a cingle cell under the value that is not zero. Appreciate any suggestion.
  • To post as a guest, your comment is unpublished.
    Louis · 6 months ago
    Hi i am trying to use this code to enter a row when a the first 4 digits in a cell changes (if thats even possible)

    for example,
    2222A
    2222B
    2223K


    the line will be inserted after 2222B as the 3rd number is a 3 and not a 2

    Thanks guys!!
  • To post as a guest, your comment is unpublished.
    Hi · 10 months ago
    hi I just wanna ask how to add row if the codition is that add row should be done when a cell has a data already (It is for a excel workbook with a lot of sheets :) Thanks!
    • To post as a guest, your comment is unpublished.
      Sunny · 9 months ago
      maybe this vba code can help you. It will add rows if above row is not empty

      Sub helping()
      Dim count As Long
      For count = ActiveSheet.UsedRange.Rows.count To 1 Step -1
      If Information.IsEmpty(Cells(count, 1)) = False Then Rows(count + 1).Insert
      Next count
      End Sub
  • To post as a guest, your comment is unpublished.
    ermias · 1 years ago
    Here is my question and it is a very difficult one i guess.. is there a vba code that add a new row below a filtered column and copy just the first three cells into the added new row and continue doing so until the user stops hitting "enter" and unfilter the filtered cells?
  • To post as a guest, your comment is unpublished.
    Tiago Dias · 1 years ago
    I need huge help on this subject. I have 2 columns, on the 1st I have my data time 01/01/2016 05:00:00, days/months/year hour/minute/seconds and in the 2 2nd column the respective data associated to the time.

    My problem is that I want to add data time between rows since I have days gaps. 1st line is 01/01/2016 and the 2nd row has, for example, 10/01/2016, so I have 9 days. and that code doesn't work for me.

    Looking forward to getting some feedback, please! Thanks
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      You can try this VBA

      Sub InsertValueBetween()
      'Update 20130825
      Dim WorkRng As Range
      Dim Rng As Range
      Dim outArr As Variant
      Dim dic As Variant
      Set dic = CreateObject("Scripting.Dictionary")
      'On Error Resume Next
      xTitleId = "KutoolsforExcel"
      Set WorkRng = Application.Selection
      Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
      num1 = WorkRng.Range("A1").Value
      num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
      interval = num2 - num1
      ReDim outArr(1 To interval + 1, 1 To 2)
      For Each Rng In WorkRng
      dic(Rng.Value) = Rng.Offset(0, 1).Value
      Next
      For i = 0 To interval
      outArr(i + 1, 1) = i + num1
      If dic.Exists(i + num1) Then
      outArr(i + 1, 2) = dic(i + num1)
      Else
      outArr(i + 1, 2) = ""
      End If
      Next
      With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
      .Value = outArr
      .Select
      End With
      End Sub


      Or if you have Kutools for Excel, you can try this function:
      • To post as a guest, your comment is unpublished.
        Tiago Dias · 1 years ago
        Hello again Sunny, i got some sucess on editing the code to this (i change the num1 line to A2 and With WorkRng.Range("A2:A100000").Resize(UBound(outArr, 1), UBound(outArr, 2)):


        Sub InsertValueBetween()
        'Update 20130825
        Dim WorkRng As Range
        Dim Rng As Range
        Dim outArr As Variant
        Dim dic As Variant
        Set dic = CreateObject("Scripting.Dictionary")
        'On Error Resume Next
        xTitleId = "KutoolsforExcel"
        Set WorkRng = Application.Selection
        Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
        num1 = WorkRng.Range("A2").Value
        num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
        interval = num2 - num1
        ReDim outArr(1 To interval + 1, 1 To 2)
        For Each Rng In WorkRng
        dic(Rng.Value) = Rng.Offset(0, 1).Value
        Next
        For i = 0 To interval
        outArr(i + 1, 1) = i + num1
        If dic.Exists(i + num1) Then
        outArr(i + 1, 2) = dic(i + num1)
        Else
        outArr(i + 1, 2) = ""
        End If
        Next
        With WorkRng.Range("A2:A100000").Resize(UBound(outArr, 1), UBound(outArr, 2))
        .Value = outArr
        .Select
        End With
        End Sub



        I show you the graphs, it doesn't work 100% because it doesn't create the time from A1 to A2
      • To post as a guest, your comment is unpublished.
        Tiago Dias · 1 years ago
        Thanks a lot, I have tried both, the 1st one since I have like 500 rows of data, I do that for the all 500 rows and doesn't do anything, I think perhaps it has a limitation on the rows to use, and when I select just the first 5 rows, for example, it doesn't create the missing rows, replaces the rows for the missing data.

        Another problem that I have is that my time data has also the Day/Month/Year HH: MM: SS
        • To post as a guest, your comment is unpublished.
          Tiago Dias · 1 years ago
          From 2 to 3, it creates the missing data that I want ok, but the value of the 03/01/2016 is eliminated and there is some time data that is eliminated something that I don't want either
          • To post as a guest, your comment is unpublished.
            Sunny · 1 years ago
            Sorry the VBA code did not help you, I cannot find the method which can work for date and time format. If you find the solution finnally, could you let me know? Thank you.