Page 1 of 1
วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 4:37 pm
by Arm_anucha
ขอสอบถามหน่อยครับ คือ Copy 2 คอลัมน์ที่ห่างกันโดยการกด Ctrl แล้วเลือกแต่ละคอลัมน์แล้วกด Paste โดย VBA Values Transpose
แต่จะทำให้มันต่อกันยังไงในแถวของคอลัมน์แรก โดยเว้น 2 คอลัมน์ ตัวอย่างคำตอบอยู่ในไฟล์ครับ
Code: Select all
Sub Paste_ValuesOnly_Transpose()
Selection.PasteSpecial Paste:=xlValues, Transpose:=True
Application.CutCopyMode = False
End Sub
Re: วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 4:54 pm
by snasui
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Dim i As Integer, j As Integer
Dim rngAll As Range, tgRng As Range
Set rngAll = Selection
Set tgRng = Range("e20")
j = Selection.Rows.Count
For i = 1 To rngAll.Areas.Count
' Selection.PasteSpecial Paste:=xlValues, Transpose:=True
' Application.CutCopyMode = False
rngAll.Areas(i).Copy
If i = 1 Then
tgRng.PasteSpecial Paste:=xlPasteValues, Transpose:=True
Else
tgRng.Offset(0, j * (i - 1) + 2).PasteSpecial Paste:=xlPasteValues, _
Transpose:=True
End If
Application.CutCopyMode = False
Next i
Re: วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 5:26 pm
by Arm_anucha
ขอสอบถามเพิ่มเติมครับอาจารย์ ถ้าจะกำหนดจุดวางเองโดยใช้เมาส์คลิก ณ จุดนั้นจะเพิ่ม Code ยังไงดีครับ
Re: วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 5:36 pm
by snasui
ต้องสร้าง UserForm แล้วเพิ่ม Control ที่ชื่อว่า RefEdit เข้ามาช่วย ดูตัวอย่างได้ตาม Video ด้านล่างครับ
Re: วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 8:33 pm
by Arm_anucha
ยังไม่ค่อยตรงความต้องการเท่าไหร่ครับ เนื่องจากต้อง Copy จากไฟล์อื่นครับ ส่วนการวางใช้ RefEdit แล้วยัง งงๆนิดหน่อยครับ
Re: วางข้อมูล Values&Transpose โดยให้ต่อกันในแถวเดียว
Posted: Tue Dec 19, 2017 9:31 pm
by snasui
ถ้าจะให้ผู้ใช้เลือกเซลล์ที่จะวางย่อมไม่ง่ายนักสำหรับมือใหม่และไม่แปลกที่ไม่เข้าใจ ต้องค่อย ๆ ศึกษาครับ
ต้องสร้าง UserForm แล้วสร้าง Control RefEdit ลำดับการทำงานคร่าว ๆ เริ่มจาก คลิกปุ่มใด ๆ หรือเกิดเหตุการณ์ใด ๆ แล้วทำการคัดลอกข้อมูลต้นทาง > เรียก UserForm เพื่อให้ผู้ใช้เลือกตำแหน่งการวาง > วางข้อมูล เช่นนี้ครับ