วันพุธที่ 18 กรกฎาคม พ.ศ. 2555

กรณีที่ต้องทำงานกับข้อมูลที่ถูกแปลงมาเป็นรายงานแล้วนั้น ค่อนข้างจะยุ่งยากลำบากในการนำมาจัดการต่อ ไม่ว่าจะเป็นการค้นหาข้อมูล การจัดเรียง การนำไปแสดงเป็นกราฟ ฯลฯ ในหลายกรณีจึงจำเป็นต้องนำข้อมูลมาเรียงเสียใหม่ให้เป็น Database เพื่อให้ง่ายต่อการใช้งาน และในบางครั้งจำเป็นต้องทำการลบข้อมูลที่ไม่จำเป็นทิ้งไปเพื่อให้เหลือเฉพาะข้อมูลที่ต้องการใช้งานเท่านั้น
ยกตัวอย่างมีข้อมูลสัญญาใน Sheet1 ซึ่งมี 4 คอลัมน์ คือ คอลัมน์ที่
  1. เลขที่สัญญา
  2. ปี
  3. เดือน
  4. จำนวนเงิน
ได้ถูกจัดเรียงไปทางขวาจำนวน 8 ชุดข้อมูล ซึ่งต้องการนำมาจัดเรียงใหม่เป็น Database ตาม Sheet2 และต้องการลบบรรทัดที่ค่าเดือนมีค่าเป็นศูนย์ทิ้งไปด้วยดังภาพตัวอย่างด้านล่าง
ภาพตัวอย่างข้อมูลแบบรายงานและข้อมูลหลังแปลงเป็น Database
CVDB
เราสามารถใช้ VBA ตามด้านล่างมาจัดการได้ครับ Winking smile
Option Explicit

Sub ReRangeData()
Dim rs As Range, rt As Range
Dim r As Range, rAll As Range
Dim lng As Long, lngLr As Long
Dim i As Integer, c As Integer
Application.ScreenUpdating = False
lngLr = Rows.Count
Worksheets("Sheet1").Range("A1:D1") _
.Copy Worksheets("Sheet2").Range("A1")
With Worksheets("Sheet1")
Set rs = .Range("A2", .Range("A2").End(xlDown))
i = rs.Count
End With
For lng = 1 To 8
With Worksheets("Sheet2")
Set rt = .Range("A" & lngLr).End(xlUp).Offset(1, 0)
rs.Copy rt
Set rs = rs.Offset(0, 1 + c).Resize(, 3)
Set rt = .Range("B" & lngLr).End(xlUp).Offset(1, 0)
rs.Copy rt
Set rAll = .Range("C2").End(xlDown).Offset(-i + 1, 0).Resize(i)
End With
For Each r In rAll
If r = 0 Then
r = ""
End If
Next r
rAll.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
With Worksheets("Sheet1")
Set rs = rs.End(xlToLeft).Resize(i, 1)
End With
c = c + 3
Next lng
Application.ScreenUpdating = True
End Sub

Posted by netdesign On 07:34 No comments

0 ความคิดเห็น:

แสดงความคิดเห็น

Onsite computer repair Ramkhamhaeng.














รับซ่อมคอมพิวเตอร์นอกสถานที่ รามคำแหง บางกะปิ นวมินทร์ เสรีไทย


ค่าแรง+ค่ารถ+ลงwinodws+โปรแกรมดูหนังฟังเพลง+office+antivirus 400 บาท
ปล. ให้บริการ เฉพาะเขตพื้นที่ รามคำแหง บางกะปิ นวมินทร์ เสรีไทย ลาดพร้าวเฉพาะ บริเวณ จากเดอะมอลบางกะปิถึงโชคไชย4


สนใจติต่อ : Tel. 083-792-5426





ดูแผนที่ขนาดใหญ่ขึ้น


  • RSS
  • Delicious
  • Digg
  • Facebook
  • Twitter
  • Linkedin
  • Youtube

ป้ายกำกับ

คลังบทความของบล็อก

Advertisement

Unordered List