Page 1 of 1
การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 12:58 pm
by wongsaton
ผมต้องการ copy ข้อมูลจาก sheet1 ที่เป็นแนวตั้งให้ copy ไปอยู่ใน sheet3 แบบแนวนอนครับ
ผมลองเขียน code แบบที่ผมเข้าใจก็ไม่เป็นอย่างที่ผมต้องการครับ ผิดพลาดประการใดขออภัยครับ มือใหม่ครับ
รบกวนทุกท่านแนะนำผมทีนะครับ ขอบพระคุณครับ
ปล.ผมทำผลลัพธ์ที่ต้องการมาเป็นตัวอย่างใน sheet2 ในไฟล์แนบครับ
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 1:44 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Sheets(1).Range("a1").CurrentRegion.copy
Sheets(2).Range("a1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 2:51 pm
by wongsaton
ขอบพระคุณมากๆครับอาจารย์ สำเร็จแล้วครับ
code สั้นได้ใจความมากเลยครับ แต่ถ้าผมจะรบกวนอาจารย์ช่วยกรุณาอธิบายคำสั่งแต่ละคำสั่งจะได้ไหมครับ
แต่ถ้าอาจารย์ไม่สะดวกไม่เป็นไรครับผม ขอบพระคุณครับ
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 3:11 pm
by snasui

จาก
Sheets(1).Range("a1").CurrentRegion.copy เป็นการ Copy เซลล์ทั้งหมดที่ติดกับเซลล์ A1 ของ Sheet1 ครับ
Sheets(2).Range("a1").PasteSpecial Paste:=xlPasteValues, Transpose:=True เป็นการวางข้อมูลที่ Copy ไว้ที่เซลล์ A1 ของ Sheet2 โดยกำหนดให้วางแบบสลับแกน
Application.CutCopyMode = False เป็นการยกเลิกคำสั่ง Copy ครับ
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 3:53 pm
by wongsaton
Code: Select all
.PasteSpecial Paste:=xlPasteValues, Transpose:=True
เป็นคำสั่งสลับแกนทั้งหมดเลยใช่ไหมครับอาจารย์
เป็นคำสั่ง copy เซลล์ที่ติดกับ A1 ใช่ไหมครับอาจารย์
แล้วถ้าผมต้องการจะ copy เซลล์ที่ไม่ได้ติดกับ A1 จะมีวิธีทำอย่างไรครับอาจารย์
ขอบพระคุณล่วงหน้าครับ
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 4:00 pm
by snasui
wongsaton wrote:
.PasteSpecial Paste:=xlPasteValues, Transpose:=True
เป็นคำสั่งสลับแกนทั้งหมดเลยใช่ไหมครับอาจารย์

ถูกต้องครับ
wongsaton wrote:
.CurrentRegion.copy
เป็นคำสั่ง copy เซลล์ที่ติดกับ A1 ใช่ไหมครับอาจารย์
แล้วถ้าผมต้องการจะ copy เซลล์ที่ไม่ได้ติดกับ A1 จะมีวิธีทำอย่างไรครับอาจารย์
ขอบพระคุณล่วงหน้าครับ
เซลล์ที่ไม่ติดกับ A1 คือเซลล์ใดครับ
ปกติการ Copy เซลล์ สามารถบันทึก Macro แล้วดู Code ได้ โดยลองเลือกทั้งเซลล์ติดกัน ไม่ติดกัน เช่นนี้เป็นต้นครับ
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 4:07 pm
by wongsaton
เข้าใจกระจ่างแล้วครับอาจารย์ ขอบพระคุณมากครับ
แล้วถ้าผมต้องการจะ copy เซลล์ที่ไม่ติดกัน จะต้องเริ่มต้นโดยคำสั่งใดครับอาจารย์
เช่น ในไฟล์แนบครับผม ปล.ผมถามเพื่อเป็นความรู้ เพื่อไปปรับใช้ในอนาคตครับอาจารย์ กรุณาด้วยนะครับผม
Re: การ copy ข้อมูลข้ามชีสจากแนวตั้งเป็นแนวนอนครับ
Posted: Sun Sep 20, 2015 5:02 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim rall As Range, r As Range, rs As Range
With Sheets(1)
Set rs = .Range("a1")
Set rall = .Columns("b:b").SpecialCells(xlCellTypeConstants)
For Each r In rall
Set rs = Union(rs, r.CurrentRegion)
Next r
End With
rs.Copy
Sheets(2).Range("a1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = fasle