Տեղեկանիշ մեզ կօգնի մատուցել մեր ծառայություններից: Ըստ օգտագործելով մեր ծառայություններից, Դուք համաձայնում եք մեր օգտագործման բլիթները:
Խորհուրդ. Այլ լեզուներն են Google- թարգմանված: Դուք կարող եք այցելել այն English այս հղման տարբերակը:
Մուտք
x
or
x
x
Գրանցում
x

or

Ինչպես սյունակում բջջային արժեքի վրա հիմնված տողեր կրկնօրինակել:

Օրինակ, ես ունեմ մի շարք տվյալներ, որոնք պարունակում են D սյունակում թվերի ցանկը, եւ հիմա, ուզում եմ կրկնել ամբողջ տողերի մի քանի անգամ, սյունակի D թվային արժեքների հիման վրա, ստանալ հետեւյալ արդյունքը: Excel- ում բջջային արժեքների հիման վրա ինչպես կարող եմ բազմապատկել տողերը:

1 բջիջով doc կրկնօրինակել տողերը

Կրկնօրինակել տողերը բազմակի անգամ, հիմնված բջջային արժեքների VBA կոդի հետ


arrow կապույտ աջ փուչիկ Կրկնօրինակել տողերը բազմակի անգամ, հիմնված բջջային արժեքների VBA կոդի հետ

Բջջային արժեքների հիման վրա բազմակի անգամ բազմակի անգամ կրկնօրինակելու եւ կրկնօրինակելու համար հետեւյալ VBA կոդը կարող է օգնել ձեզ, խնդրում ենք կատարել հետեւյալը.

1. Անջատեք ALT + F11 բացել ստեղները Microsoft Visual Basic ծրագրերի համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներեւ տեղադրել հետեւյալ կոդը Մոդուլներ Պատուհանը:

VBA կոդ: Կրկնօրինակել տողերը բազմակի անգամ, բջջային արժեքի հիման վրա.

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. Այնուհետեւ սեղմեք F5 բանալին գործարկելու համար այս կոդը, ամբողջ շարքերը կրկնօրինակվել են բազմաթիվ անգամներ, որոնք հիմնված են բջջային արժեքի սյունակում, ինչպես դուք պետք է:

Նշում: Վերոնշյալ կոդում, նամակում A նշում է ձեր տվյալների տիրույթի սկիզբ սյունը եւ նամակը D սյունակաթուղթն է, որը ցանկանում եք կրկնօրինակել տողերի վրա հիմնված: Խնդրում ենք փոխել դրանք ձեր կարիքի համար:



Առաջարկված արտադրողականության գործիքներ

Գրասենյակի էջանշանը

ոսկի star1 Հասանելի էջանիշեր բերեք Excel- ում եւ Office- ի այլ ծրագրերում, ինչպես Chrome- ի, Firefox- ի եւ նոր Internet Explorer- ի:

Excel- ի համար Excel- ում

ոսկի star1 Զարմանալի է: Բարձրացրեք ձեր արտադրողականությունը 5 րոպեում: Անհրաժեշտ է հատուկ հմտություններ, օրական երկու ժամ տեւողությամբ:

ոսկի star1 300- ի նոր առանձնահատկությունները Excel- ում, կատարել Excel շատ հեշտ եւ հզոր:

  • Միավորել բջիջը / շարքերը / սյունակները առանց կորցնելու տվյալների:
  • Միավորել եւ միավորել բազմակի թերթիկները եւ աշխատանքային տետրերը:
  • Համեմատեք միջակայքերը, պատճենեք բազմակի ընդգրկույթներ, փոխեք տեքստային ամսաթիվը, միավորը եւ արտարժույթի փոխակերպումը:
  • Count by Colors, Paging Subtotals, Ընդլայնված Sort եւ Super Filter,
  • Լրացուցիչ Ընտրել / Ներդիր / Ջնջել / Տեքստային / Ֆորմատ / ՈՒղեցույց / Մեկնաբանություն / Աշխատանքային տետրեր / Գործիքներ գործիքներ ...

Excel ստեղնաշարի կրկնօրինակը Excel- ում

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.
    Jackie · 6 months ago
    So I am using this code but I want it to search the entire document not just row 1 or whatever is indicated by xRow = 1. I am trying to put in the range 1:2000 but it is not working. How can I identify xRow = any row on the sheet that includes the information I identify in the code below?


    Dim xRow As Long
    Dim Value As Variant


    xRow = 1: 2000

    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
    Value = Cells(xRow, "D")
    Value2 = Cells(xRow, "A")
    If Not ((Value = "allegheny general") And IsNumeric(Value2 = G0202)) Then
    Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
    Range(Cells(xRow + 1, "A"), Cells(xRow + 1, "D")).Select
    Selection.Insert Shift:=xlDown
    xRow = xRow + 1
    End If
    xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
    End Sub
  • To post as a guest, your comment is unpublished.
    Hayley · 7 months ago
    Do you know what the code would be to duplicate the row just the once, based on if say cell d contains 'Yes' - I have been chasing similar code but for something that will duplicate a row based on a cell saying yes
  • To post as a guest, your comment is unpublished.
    Steve · 9 months ago
    I used the code above which works great but I need one more step after the row is pasted. I just cannot get it to properly work. I need it to put zero in column "N" in the row after it is pasted but keep the value in "N" in the original copied row.


    Sub CopyData()
    'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
    VInSertNum = Cells(xRow, "J")
    If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
    Range(Cells(xRow, "A"), Cells(xRow, "AN")).Copy
    ' Cells(xRow, 14).Value = 0 this did all rows
    Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "AN")).Select
    'Cells(xRow, 14).Value = 0
    'this did all rows
    Selection.Insert Shift:=xlDown
    ' Cells(xRow, 14).Value = 0 this did the first row only
    xRow = xRow + VInSertNum - 1
    'Cells(xRow - 1, 14).Value = 0
    End If
    ' Cells(xRow - 1, 14).Value = 0
    xRow = xRow + 1
    ' Cells(xRow + 1, 14).Value = 0
    Loop
    'Cells(xRow, 14).Value = 0 this did no rows
    Application.ScreenUpdating = False
    End Sub
  • To post as a guest, your comment is unpublished.
    OSHRI · 11 months ago
    Hi,
    Someone knows hot convert this VBA code to Google Apps scripts (google sheets)?
  • To post as a guest, your comment is unpublished.
    David · 1 years ago
    Thank you! lines 10 and 11 "D" indicates the end of the row and this may need to be changed to your data range to make it work.