ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
29 visibility
موضوع: آفیس توسط:

جیمز داده هایی در یک کاربرگ دارد که در یک سری ردیف قرار دارد. یکی از ستون های داده شامل سلول هایی است که در هر سلول دارای چندین خط هستند. (داده‌های سلول با فشار دادن Alt+Enter بین آیتم‌ها به خطوط جدا شدند.) جیمز می‌خواهد این داده‌ها را به چند ردیف تقسیم کند. به عنوان مثال، اگر سه خط داده در یک سلول در یک ردیف وجود داشته باشد، داده های آن سلول باید به سه ردیف تقسیم شوند.

اکسل با استفاده از ابزار Text to Columns روشی مفید برای تقسیم داده ها به ستون های جداگانه ارائه می دهد. این می تواند برای تقسیم داده ها بر اساس وجود کاراکتر ASCII 10، که اکسل با فشار دادن Alt+Enter وارد می کند، استفاده شود . مشکل این است که در حالی که این با موفقیت داده‌ها را به ستون‌های جداگانه تقسیم می‌کند، مانند درخواست جیمز آن‌ها را در ردیف‌های جداگانه قرار نمی‌دهد.

یعنی راه حل این مشکل باید شامل استفاده از یک ماکرو باشد. یک رویکرد در کد زیر نشان داده شده است. در این مثال، ماکرو فرض می‌کند که می‌خواهید همه چیز را در کاربرگ «بسط» کنید و داده‌های کاربرگ از ردیف 1 شروع می‌شوند.

Sub CellSplitter()
    Dim Temp As Variant
    Dim CText As String
    Dim J As Integer
    Dim K As Integer
    Dim L As Integer
    Dim iColumn As Integer
    Dim lNumCols As Long
    Dim lNumRows As Long

    iColumn = 4

    Set wksSource = ActiveSheet
    Set wksNew = Worksheets.Add

    iTargetRow = 0
    With wksSource
        lNumCols = Cells(1,Columns.Count).End(xlToLeft).Column
        lNumRows = Cells(Rows.Count,1).End(xlUp).Row
        For J = 1 To lNumRows
            CText = .Cells(J, iColumn).Value
            Temp = Split(CText, Chr(10))
            For K = 0 To UBound(Temp)
                iTargetRow = iTargetRow + 1
                For L = 1 to lNumCols
                    If L <> iColumn Then
                        wksNew.Cells(iTargetRow, L) _
                          = .Cells(J, L)
                    Else
                        wksNew.Cells(iTargetRow, L) _
                          = Temp(K)
                    End If
                Next L
            Next K
        Next J
    End With
End Sub

توجه داشته باشید که برای اجرای ماکرو، باید با استفاده از متغیر iColumn، ستونی را مشخص کنید که حاوی سلول‌هایی است که باید از هم جدا شوند. همانطور که در اینجا نوشته شده است، ماکرو اطلاعات را در ستون چهارم از هم جدا می کند. علاوه بر این، نسخه‌های تقسیم‌شده سلول‌ها در یک کاربرگ جدید ذخیره می‌شوند تا کاربرگ اصلی به هیچ وجه تحت تأثیر قرار نگیرد.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

187 نفر آنلاین
0 عضو و 187 مهمان در سایت حاضرند
بازدید امروز: 13653
بازدید دیروز: 13001
بازدید کل: 19467946
...