snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#1
Post
by crackman » Wed Feb 14, 2018 1:43 pm
รบกวนสอบถามเรื่องการวางข้อมูลต่อกันเป็นชุดๆ (ชุดละ 7วัน) ใน Row เดียวกัน โดยห้ามวางข้อมูลทับวันเก่า ทำจาก Macro ครับ
1.กำหนดให้ Excel เลื่อนตำแหน่งว่าง อย่างไรครับ
2.กำหนดให้ วางในช่องตำแหน่งว่าง อย่างไรครับ
ขอบคุณมากครับ.
ข้อมูลได้หาได้จากในเวป แต่เอามาใช้ไม่เป็น
Dim rLastCell As Range
Set rLastCell = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
MsgBox ("The last used column is: " & rLastCell.Column)
----------------------------------------------------------------
Sub LastRow_Example()
Dim LastRow As Long
Dim rng As Range
' Use all cells on the sheet
Set rng = Sheets("Sheet1").Cells
'Use a range on the sheet
'Set rng = Sheets("Sheet1").Range("A1:D30")
' Find the last row
LastRow = Last(1, rng)
' After the last row with data change the value of the cell in Column A
rng.Parent.Cells(LastRow + 1, 1).Value = "Hi there"
End Sub
puriwutpokin
Guru
Posts: 3693 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » Wed Feb 14, 2018 1:53 pm
ควรแนบไฟล์ตัวอย่างและโค้ด และคำตอบที่ต้องการ พร้อมแนบโค้ดให้เป็นโค้ด ตาม เงื่อนไขของบอร์ดนี้ด้วยครับ
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#3
Post
by crackman » Wed Feb 14, 2018 2:13 pm
puriwutpokin wrote: ↑ Wed Feb 14, 2018 1:53 pm
ควรแนบไฟล์ตัวอย่างและโค้ด และคำตอบที่ต้องการ พร้อมแนบโค้ดให้เป็นโค้ด ตาม เงื่อนไขของบอร์ดนี้ด้วยครับ
รับทราบครับ
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#4
Post
by crackman » Fri Feb 16, 2018 2:20 pm
Code: Select all
Windows("Book1").Activate
Range("B3:H3").Select
Selection.Copy
Windows("Book2").Activate
ActiveCell.Offset(0, -1).Range("A2").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A2").Select
Range("A2").Select
ActiveSheet.Paste
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#5
Post
by crackman » Fri Feb 16, 2018 2:23 pm
ต้องการให้วางข้อมูลในแนวนอนต่อกันครับ ตอนนี้มันติด Activecell ติด 2 บรรทัดนี้ครับ รบกวนด้วยนะครับ ขอบคุณมากๆ
logic
Gold
Posts: 1506 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#6
Post
by logic » Fri Feb 16, 2018 2:27 pm
ช่วยแนบไฟล์มาด้วยจะได้ช่วยทดสอบครับ
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#7
Post
by crackman » Fri Feb 16, 2018 2:40 pm
ใน Macro 1 ในฺไฟล์ Book1 ใช้งานได้ครับ วางไฟล์ต่อกันได้ แต่ใน Macro 4ฺ Book2 เป็นการก็อปปี่ข้ามไฟล์ ยังทำไม่สำเร็จครับ.ขอบคุณมากครับ
You do not have the required permissions to view the files attached to this post.
logic
Gold
Posts: 1506 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#8
Post
by logic » Fri Feb 16, 2018 3:07 pm
ไฟล์ทั้งสองไม่มีมาโครครับ ต้องเซฟเป็น .xlsm ครับ
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#9
Post
by crackman » Fri Feb 16, 2018 3:09 pm
Save Macro 1 ในBook1 ไม่ติดไปครับ เพิ่มเติมให้ครับ
Code: Select all
Sub Macro1()
'
' Macro1 Macro
'
Range("B2:H2").Select '-> Select -> Select data for copy
Selection.Copy '-> Copy data
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.End(xlToRight).Select '-> Move to right of border data
ActiveCell.Offset(0, 1).Range("A1").Select '-> Move to next of the border data
ActiveSheet.Paste '-> Paste data
Application.CutCopyMode = False
End Sub
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#10
Post
by crackman » Fri Feb 16, 2018 3:16 pm
เพิ่มให้แล้วครับ ขอโทษนะครับมือใหม่มากๆกำลังศึกษา
You do not have the required permissions to view the files attached to this post.
logic
Gold
Posts: 1506 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#11
Post
by logic » Fri Feb 16, 2018 3:35 pm
ลองดูครับ
มาโครใน Book2.xlsm
Code: Select all
Sub Macro2()
'
' Macro2 Macro
'
'
Windows("Book1.xlsm").Activate
Range("B2:H2").Select
Selection.Copy
Windows("Book2.xlsm").Activate
Sheets("Report").Select
Range("B2").End(xlToRight).Select
' Selection.End(xlToRight).Select '-> Move to right of border data
Selection.Offset(0, 1).Select '-> Move to next of the border data
ActiveSheet.Paste '-> Paste data
Application.CutCopyMode = False
End Sub
crackman
Member
Posts: 9 Joined: Wed Feb 14, 2018 1:27 pm
#12
Post
by crackman » Fri Feb 16, 2018 4:24 pm
logic wrote: ↑ Fri Feb 16, 2018 3:35 pm
ลองดูครับ
มาโครใน Book2.xlsm
Code: Select all
Sub Macro2()
'
' Macro2 Macro
'
'
Windows("Book1.xlsm").Activate
Range("B2:H2").Select
Selection.Copy
Windows("Book2.xlsm").Activate
Sheets("Report").Select
Range("B2").End(xlToRight).Select
' Selection.End(xlToRight).Select '-> Move to right of border data
Selection.Offset(0, 1).Select '-> Move to next of the border data
ActiveSheet.Paste '-> Paste data
Application.CutCopyMode = False
End Sub
ได้แล้วครับ ขอบคุณมากๆ