:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

vba_rearrange_data

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sna
Silver
Silver
Posts: 693
Joined: Tue May 05, 2020 8:18 am
Excel Ver: Excel 365

vba_rearrange_data

#1

Post by sna »

Hi Dear!
I need your hand to correct data arranging in a new sheet.I try but it's no luck

Code: Select all

Sub FormatLoanData()

    Dim ws As Worksheet
    Dim outputWs As Worksheet
    Dim lastRow As Long
    Dim currentRow As Long
    Dim outputRow As Long
    Dim currentOfficer As String
    
    ' Set the worksheets
    Set ws = ThisWorkbook.Sheets("RawData") ' Change to your actual data sheet name
    Set outputWs = ThisWorkbook.Sheets.Add
    outputWs.Name = "Output"

    
    outputRow = 2 ' Start output from the second row
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Get last row with data
    
    For currentRow = 2 To lastRow ' Assuming first row is header
        ' Check for Credit Officer header
        If InStr(ws.Cells(currentRow, 1), "Credit Officer:") > 0 Then
            currentOfficer = ws.Cells(currentRow, 1).Value ' Store current officer
            ' Skipping the credit officer line
        ElseIf ws.Cells(currentRow, 1).Value <> "" Then
            ' Copy Data to formatted worksheet

            outputWs.Cells(outputRow, 1).Value = ws.Cells(currentRow, 1).Value
            outputWs.Cells(outputRow, 2).Value = ws.Cells(currentRow, 2).Value
            outputWs.Cells(outputRow, 3).Value = ws.Cells(currentRow, 3).Value
            outputWs.Cells(outputRow, 4).Value = ws.Cells(currentRow, 4).Value
            
            outputRow = outputRow + 1 ' Increment output row counter
        End If
    Next currentRow
    
End Sub
Please help fix it to get outputs like the hightlighted sheet.
Noted:you can change variable to whatever it is easier to read as well.

thank you in advance
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30905
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: vba_rearrange_data

#2

Post by snasui »

:D The example VBA code for transforming data is below,

Code: Select all

Sub TransformData()
    Dim i As Integer, srAll As Range, tgAll As Range, r As Range
    With Worksheets("RawData")
        Set srAll = .Range("a6", .Range("d" & .Rows.Count).End(xlUp))
    End With
    With Worksheets("required")
        .UsedRange.ClearContents
        .Range("a1").Resize(srAll.Rows.Count, srAll.Columns.Count) _
            .Value = srAll.Value
        Set tgAll = .Range("b2", .Range("b" & .Rows.Count).End(xlUp))
        For Each r In tgAll
            If IsNumeric(VBA.Right(r.Value, 9)) Then
                r.Offset(0, -1).Value = r.Offset(-1, -1).Value + 1
            End If
        Next r
        tgAll.SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
    End With
End Sub
sna
Silver
Silver
Posts: 693
Joined: Tue May 05, 2020 8:18 am
Excel Ver: Excel 365

Re: vba_rearrange_data

#3

Post by sna »

Thanks,I will take a look
Post Reply