وارد کردن اطلاعات موجود در یک سل به چندین سل

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • EBRAHIMSASANI

    • 2011/06/11
    • 33

    وارد کردن اطلاعات موجود در یک سل به چندین سل

    با سلام خدمت دوستان

    من یه فایل اکسل دارم که دارای چندین ستونه و یکی از ستونها توضیحاتی راجع به یک موضوع خاص داره و این توضیحات ممکنه زیاد باشه مثلا1000 کاراکتر من تو یه شیت دیگه از کتاب کارم به یه سری سل که قراره همه این کاراکترا رو تو خودشون جابدن طول و عرض مشخصی دادم و wrap text اونا رو برابر true قرار دادم که طولش زیاد نشه حالا می خوام کدی بنویسم که به محض اینکه بخواد عرض سل اضافه بشه خودش کاراکترها را تقسیم کنه و اون مقدار کاراکتر که نیازه تا عرض سل اضافه نشه در سلول قرار بده و بقیه رو تو سلول بعدی و الخ تا کاراکترها تمام بشه و تمام توضیحات در چندین سل زیر هم قرار بگیره . لطفاً راهنمایی کنید .
  • sohrabahmadi

    • 2012/05/03
    • 142
    • 35.00

    #2
    RE: وارد کردن اطلاعات موجود در یک سل به چندین سل

    نوشته اصلی توسط EBRAHIMSASANI
    با سلام خدمت دوستان

    من یه فایل اکسل دارم که دارای چندین ستونه و یکی از ستونها توضیحاتی راجع به یک موضوع خاص داره و این توضیحات ممکنه زیاد باشه مثلا1000 کاراکتر من تو یه شیت دیگه از کتاب کارم به یه سری سل که قراره همه این کاراکترا رو تو خودشون جابدن طول و عرض مشخصی دادم و wrap text اونا رو برابر true قرار دادم که طولش زیاد نشه حالا می خوام کدی بنویسم که به محض اینکه بخواد عرض سل اضافه بشه خودش کاراکترها را تقسیم کنه و اون مقدار کاراکتر که نیازه تا عرض سل اضافه نشه در سلول قرار بده و بقیه رو تو سلول بعدی و الخ تا کاراکترها تمام بشه و تمام توضیحات در چندین سل زیر هم قرار بگیره . لطفاً راهنمایی کنید .
    با سلام و درود به اساتید اگه میشه جواب این سوال رو بدن.تو نوشتن چک خیلی بدرد میخوره.

    تو خشنود باشی و ما رستگار

    کامنت

    • EBRAHIMSASANI

      • 2011/06/11
      • 33

      #3
      RE: وارد کردن اطلاعات موجود در یک سل به چندین سل

      با سلام

      من خودم یه راه حل دارم که اینه
      اول طول و عرض سل رو مشخص می کنیم و WRAP TEXT رو برابر TRUE قرار می دیم حالا یه حرف مثلاً W که جای بیشتری رو میگیره تو اون سل به تعدادی که عرض سلول اضافه نشه تایپ می کنیم حالا تعداد اونو می شماریم با LEN و بعد کد زیر رو می نویسیم فرض می کنیم که LEN=48 باشد
      Dim txt
      txt = Array(1, 49, 97, 145, 193, 241, 289, 337, 385, 433, 481, 529, 577, 625, 673, 721, 769, 817, 865, 913, 961, 1009, 1057, 1105, 1153, 1201, 1249)
      For Each c2 In Sheet1.Range("i50:i65536")
      If c2 <> "" Then
      a = Len(c2)
      b = Int(a / 48)
      If a Mod 48 = 0 Then
      b1 = b
      Else
      b1 = b + 1
      End If
      For Each c3 In Sheet1.Range("y50:y65536")
      If c3 = "" Then

      For i = 0 To b1 - 1
      c3.Offset(i, 0) = Mid(Sheet1.Range("i" & c2.Row), txt(i), 48)
      Next i
      Exit For
      End If
      Next c3
      End If
      Next c2
      البته چون کاراکتری مثل Iاگر در سلول قرار گیرد جای کمتری می گیرد به طور کامل فضای سلولها پر نمی شود و هر سلول فقط 48 کاراکتر می گیرد که ممکن است محتویات سلول شامل کاراکترهای با فضای بیشتر مثل W باشد و یا شامل کاراکترهای با فضای کمتر مثل I
      اگه دوستان راه حل بهتری دارن که این مشکل حل بشه لطفاً راهنمایی کنن با تشکر

      کامنت

      • sohrabahmadi

        • 2012/05/03
        • 142
        • 35.00

        #4
        RE: وارد کردن اطلاعات موجود در یک سل به چندین سل

        با سلام و تشکر از جناب ساسانی پور عزیز . اگه امکانش هست یه نمونه بذارین . من کد شمارو تست کردم ولی اجرا نشد. مرسی
        تو خشنود باشی و ما رستگار

        کامنت

        • EBRAHIMSASANI

          • 2011/06/11
          • 33

          #5
          RE: وارد کردن اطلاعات موجود در یک سل به چندین سل

          با سلام خدمت دوست گرامی

          قسمتی از کد مشکل داشت که به دلیل کپی و پیست کردن بود کد اصلاح شد و در قالب فایل ضمیمه خدمتون ارسال شد امیدوارم مفید واقع بشه
          فایل های پیوست شده

          کامنت

          چند لحظه..