: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

กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#1

Post by suka »

เรียนอาจารย์และท่านผู้รู้ค่ะ

ที่ไฟล์ FrRM_ex ชีท FormRM_ex เซลล์ C8:I11 ใช้สูตรดึงวัตถุดิบมาเป็นชุดตามรหัสจากเซลล์ J5 จากตัวอย่างไฟล์แนบที่เซลล์ K8:L12 กรอกตัวเลขครบทุกแถว Code ไม่มีปัญหาใดใช้ได้ค่ะ

หากมีการกรอกตัวเลขไม่ครบ ตัวอย่างเช่นเซลล์ K8:L12 แถวที่ 1 กรอกจำนวน แถวที่ 2 ว่าง แถวที่ 3 กรอกจำนวน แถวที่ 4 กรอกจำนวน ติดปัญหาค่ะ Code นำข้อมูลแถวที่ 1-3 มาแถวที่ 4 ไม่มาค่ะ

ความต้องการให้นำข้อมูลมาเฉพาะแถวที่ใส่จำนวนตัวเลขมาเท่านั้นค่ะ แถวไหนไม่มีตัวเลขไม่ต้องนำมาค่ะ โค๊ดด้านล่างนี้ต้องการอย่างไรคะ

ตัวอย่างที่ต้องการตามไฟล์ Material_BSh ที่ระบายสีเหลืองค่ะ Code ติดที่ระบายสีแดงค่ะ
ขอบคุณค่ะ

Code: Select all

Sub MainCode_ex()
    Dim formBook As Workbook
    Dim i As Integer
    Dim e As Long
    Dim rs As Range
    Dim rt As Range
    Dim rk As Range
    Set formBook = ThisWorkbook
   Set wbShare = Workbooks("Material_BSh.xlsx")
    With wbShare
           e = .Sheets("Stock_MR").Range("B" & Rows.Count).End(xlUp).Value + 1    'หาเลขสุดท้ายแลัว + 1
          formBook.Worksheets("FormRM_ex").Range("E5").Value = e
    End With
    wbShare.Save
    i = Worksheets("FormRM_ex").Range("B6").Value
    With formBook.Worksheets("Template")
            Set rs = .Range(.Range("a2"), .Range("p" & i + 1))
    End With
    
    Set rt = wbShare.Sheets("Stock_MR").Range("A1048576").End(xlUp).Offset(1, 0)
   If Worksheets("FormRM_ex").Range("l5") = True Then
        MsgBox "Please check your data. This transaction already recorded."
        Exit Sub
    End If
    If Worksheets("FormRM_ex").Range("l5") = "" Then
        MsgBox "Your data is empty. Fill your data and click record button again."
        Exit Sub
    End If
    rs.Copy: rt.PasteSpecial xlPasteValues
    Sheets("FormRM_ex").Range("k8:l12,n8:n12").ClearContents
       With formBook.Sheets("FormRM_ex")
            .Range("E5") = .Range("E5") + 1
        End With
    Application.CutCopyMode = False
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#2

Post by snasui »

:D ในชีต FormRM_ex ปรับสูตรที่เซลล์ B6 เป็นด้านล่างครับ

=MATCH(9.99999999999999E+307,B8:B12)

Enter จากนั้นปรับ Code ดังนี้
  1. เพิ่มการประกาศตัวแปร dim r as range ต่อจากเดิมที่มีอยู่แล้ว
  2. ปรับ Code เดิมที่ใช้สำหรับ Copy และวางข้อมูล (บรรทัดก่อน Code ที่ใช้ Clear Contents) เป็นด้านล่าง โดยย้ายบรรทัดที่ทำการกำหนดค่าให้กับตัแปร rt มาไว้ที่ Code นี้ด้วย

    Code: Select all

    For Each r In rs.Columns(4).Cells
        If r.Value <> "" Then
            Set rt = wbShare.Sheets("Stock_MR").Range("A1048576").End(xlUp).Offset(1, 0)
            rs.Rows(r.Rows).Copy: rt.PasteSpecial xlPasteValues
        End If
    Next r
    
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#3

Post by suka »

:thup: ขอบคุณค่ะอาจารย์ โค๊ดได้ตรงตามที่ต้องการแล้วค่ะ

ขอรบกวนถามความหมายของโค๊ด For Each r In rs.Columns(4).Cells นี้ จากตัวอย่างไฟล์หมายถึงไฟล์ Material_BSh คอลัมน์ D ใช่ไหมคะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#4

Post by bank9597 »

suka wrote::thup: ขอบคุณค่ะอาจารย์ โค๊ดได้ตรงตามที่ต้องการแล้วค่ะ

ขอรบกวนถามความหมายของโค๊ด For Each r In rs.Columns(4).Cells นี้ จากตัวอย่างไฟล์หมายถึงไฟล์ Material_BSh คอลัมน์ D ใช่ไหมคะ
ตามนั้นครับ :mrgreen:
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#5

Post by suka »

ขอบคุณค่ะคุณ bank9597

ขอบคุณอาจารย์มากค่ะ โค้ดช่วยให้ทำง่ายและประหยัดเวลาได้มากๆค่ะ :thup:
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#6

Post by snasui »

suka wrote: :thup: ขอบคุณค่ะอาจารย์ โค๊ดได้ตรงตามที่ต้องการแล้วค่ะ

ขอรบกวนถามความหมายของโค๊ด For Each r In rs.Columns(4).Cells นี้ จากตัวอย่างไฟล์หมายถึงไฟล์ Material_BSh คอลัมน์ D ใช่ไหมคะ
:D มาขยายความให้อีกนิดครับ

rs.Columns(4).Cells คือคอลัมน์ที่ 4 ของตัวแปร rs ซึ่งเป็นช่วงข้อมูลต้นทาง แต่เนื่องจากว่ามีการ Copy ตัวแปร rs แล้วไปวางในคอลัมน์ A ของไฟล์ปลายทาง ตำแหน่งคอลัมน์ที่ 4 ของตัวแปร rs จึงไปตรงกับคอลัมน์ D ของไฟล์ปลายทาง

Code นี้เป็นการตรวจสอบค่าในคอลัมน์ที่ 4 ของตัวแปร rs ทีละเซลล์ว่าว่างหรือไม่ว่าง หากไม่ว่างให้ Copy ค่าของตัวแปร rs ทั้งบรรทัดไปวางยังปลายทางครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#7

Post by suka »

อ่อค่ะ ตัวแปร rs ช่วงข้อมูลต้นทางไฟล์นี้เท่ากับค่าในชีท Template คอลัมน์ D

ขอบพระคุณค่ะอาจารย์
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#8

Post by suka »

เรียนอาจารย์ค่ะ ขอรบกวนช่วยเรื่องปรับโค้ดค่ะ
ที่ชีท Template ข้อมูลเริ่มที่เซลล์ A12:L17 ใช้โค้ดด้านล่างนี้ค่ะ

Code: Select all

With formBook.Worksheets("Template")
    Set rs = .Range(.Range("A12"), .Range("L12" & i + 1))
End With
สามารถวางข้อมูลได้ตามต้องการ แต่มีฟ้องระบายสีเหลืองที่โค้ดค่ะ ตรงสีแดงค่ะ
rs.Rows(r.Rows).Copy: rt.PasteSpecial xlPasteValues

ด้านล่างนี้เป็นโค้ดทั้งชุดที่ใช้ร่วมกันค่ัะ

Code: Select all

Sub Main_ex()
    Dim formBook As Workbook
    Dim i As Integer
    Dim e As Long
    Dim rs As Range
    Dim rt As Range
    Dim rk As Range
    Dim r As Range
    Set formBook = ThisWorkbook
   Set wbShare = Workbooks("Material_BSh.xlsx")
    With wbShare
           e = .Sheets("Stock_MR").Range("B" & Rows.Count).End(xlUp).Value + 1
          formBook.Worksheets("FormRM_ex").Range("E5").Value = e
    End With
    wbShare.Save
    i = Worksheets("FormRM_ex").Range("B6").Value
    With formBook.Worksheets("Template")
            Set rs = .Range(.Range("A12"), .Range("L12" & i + 1))
    End With

    For Each r In rs.Columns(4).Cells
        If r.Value <> "" Then
            Set rt = wbShare.Sheets("Stock_MR").Range("A1048576").End(xlUp).Offset(1, 0)
            rs.Rows(r.Rows).Copy: rt.PasteSpecial xlPasteValues
        End If
    Next r

    If Worksheets("FormRM_ex").Range("L5") = "" Then
        MsgBox "Your data is empty. Fill your data and click record button again."
        Exit Sub
    End If
   
    Sheets("FormRM_ex").Range("k8:l12,n8:n12").ClearContents
       With formBook.Sheets("FormRM_ex")
            .Range("E5") = .Range("E5") + 1
        End With
    Application.CutCopyMode = False
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#9

Post by snasui »

:D ลองปรับเป็น rs.Rows(r.Row) ครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#10

Post by suka »

ขอบคุณค่ะอาจารย์ Code ใช้ได้แล้วค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#11

Post by suka »

เรียนอาจารย์ค่ะ
ขอรบกวนช่วยดูไฟล์ตัวอย่างโค้ดชื่อ PasteFG และ PasteEmp ทั้ง 2 Code
เขียนเหมือนกัน PasteFG สามารถวางข้อมูลได้โดยไม่มีฟ้องใดๆ

ต่างกับโค้ดชื่อ PasteEmp ที่สามารถวางข้อมูลได้แต่มีฟ้องตามรูปแนบค่ะ
ไม่ทราบควรปรับอย่างไรค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#12

Post by snasui »

:D ทบทวนที่ผมตอบไว้ได้านบนแล้วปรับให้ตรงตามนั้นทุกอักขระครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#13

Post by suka »

Code: Select all

i = Worksheets("Form").Range("I2").Value
อาจารย์คะ i ที่ชีท Form หากข้อมูลเรียงตามแนวคอลัมน์ โค้ดด้านล่างเขียนเหมือนเรียงตามแถวไหมคะ ตัวอย่างรูปปแนบค่ะ

Code: Select all

 i = Worksheets("Form").Range("I2").Value
    With formBook.Worksheets("Template")
            Set rs = .Range("A12:L12").Resize(i + 1)
    End With
    For Each r In rs.Columns(4).Cells
        If r.Value <> "" Then
            Set rt = wbShare.Sheets("Employees").Range("A1048576").End(xlUp).Offset(1, 0)
              rs.Rows(r.Row).Copy: rt.PasteSpecial xlPasteValues
        End If
    Next r
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#14

Post by snasui »

:D ไม่กระจ่างในสิ่งที่ถามมาครับ

Code นั้นเป็นการ Loop คอลัมน์ที่ 4 ของตัวแปร rs หากพบว่าเซลล์ใดในคอลัมน์นั้นไม่เป็นค่าว่าง ให้ Copy ทั้งบรรทัดไปยังตำแหน่งปลายทาง

ประเด็นที่สงสัยคืออะไรครับ :?:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#15

Post by suka »

ก่อนหน้านี้วางข้อมูลที่ปลายทางไม่ได้ที่ต้องการ ดังตัวอย่างรูปแนบระบายสีแดงค่ะ ทำให้สงสัยโค้ดด้านล่างว่า i ที่ฟอร์มข้อมูลเรียงตามแนวคอลัมน์จะเป็นปัญหาหรือไม่ค่ะ

Code: Select all

  i = Worksheets("Form").Range("I2").Value
  With formBook.Worksheets("Template")
      Set rs = .Range("A12:L12").Resize(i + 1)
  End With
ลองเติม s ที่โค้ดด้านล่างที่ระบายสีแดงค่ะ rs.Rows(r.Rows).Copy
ทำให้วางข้อมูลได้ตรงตามต้องการแล้วค่ะ ตัวอย่างรูปแนบที่ระบายสีเหลืองค่ะ ขอบคุณอาจารย์มากค่ะ

Code: Select all

For Each r In rs.Columns(4).Cells
        If r.Value <> "" Then
            Set rt = wbShare.Sheets("Emp").Range("A1048576").End(xlUp).Offset(1, 0)
              rs.Rows(r.Rows).Copy: rt.PasteSpecial xlPasteValues
        End If
    Next r
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#16

Post by snasui »

:D rs.rows(r.rows).copy ในเครื่องผมไม่สามารถใช้ได้ครับ

แต่ rs.rows(r.row).copy สามารถใช้ได้ เป็นการ Copy ตัวแปร rs ในบรรทัดที่เป็นค่าบรรทัดของตัวแปร r โดย Copy ไปทั้งบรรทัด

r.rows คือค่าของตัวแปร r เมื่อ r เป็นเซลล์เดี่ยวๆ แต่หาก r เป็นช่วงเซลล์ จะเกิด Error ครับ
r.row คือค่าบรรทัดของตัวแปร r

แต่เมื่อคุณ suka สามารถใช้ rs.rows(r.rows).copy ได้ก็ยินดีด้วยครับ :)
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#17

Post by suka »

อาจารย์คะ ใช้โค้ดนี้

Code: Select all

rs.Rows(r.Row).Copy: rt.PasteSpecial xlPasteValues
กับโค้ดทั้งชุดด้านล่าง ข้อมูลที่บันทึกไปไฟล์ Material_BookShare.xlsx ชีท Emp ไม่ได้ตามต้องการ ตัวอย่างไฟล์แนบชีท Emp ระบายสีแดง ที่ต้องการระบายสีเหลืองค่ะ ไม่ทราบว่าโค้ดด้านล่างเขียนไม่ผิดที่จุดใดค่ะ

Code: Select all

Sub InEmp()
Application.ScreenUpdating = False
    Dim formBook As Workbook
    Dim i As Integer
    Dim e As Long
    Dim rs As Range
    Dim rt As Range
    Dim rk As Range
    Dim r As Range
    Set formBook = ThisWorkbook
   Set wbShare = Workbooks("Material_BookShare.xlsx")
    With wbShare
           e = .Sheets("Emp").Range("B" & Rows.Count).End(xlUp).Value + 1
          formBook.Worksheets("Form").Range("J5").Value = e
    End With
    wbShare.Save
    i = Worksheets("Form").Range("I2").Value
    With formBook.Worksheets("Template")
            Set rs = .Range("A12:L12").Resize(i + 1)
    End With

    For Each r In rs.Columns(4).Cells
        If r.Value <> "" Then
            Set rt = wbShare.Sheets("Emp").Range("A1048576").End(xlUp).Offset(1, 0)
              rs.Rows(r.Row).Copy: rt.PasteSpecial xlPasteValues
        End If
    Next r

        With formBook.Sheets("Form")
            .Range("J5") = .Range("J5") + 1
        End With
    Application.CutCopyMode = False
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#18

Post by snasui »

:D จากตัวอย่างไฟล์ที่แนบมา สามารถใช้ rs.rows(r.rows) เพื่อ Return ค่าบรรทัดที่ตัวแปร r หรือจะใช้เป็น rs.rows(r) ก็ได้เช่นกัน

ผมปรับ Code บางส่วนมาเป็นตัวอย่างเพื่อให้กระชับลงตามด้านล่างครับ

Code: Select all

With wbShare.Sheets("Emp")
       e = .Range("B" & .Rows.Count).End(xlUp).Row + 1
      formBook.Worksheets("Form").Range("J5").Value = e
End With

wbShare.Save

i = formBook.Worksheets("Form").Range("I2").Value

With formBook.Worksheets("Template")
        Set rs = .Range("A12:L12").Resize(i + 1)
End With

For Each r In rs.Columns(4).Cells
    If r.Value <> "" Then
        Set rt = wbShare.Sheets("Emp").Range("A1048576").End(xlUp).Offset(1, 0)
        rs.Rows(r).Copy: rt.PasteSpecial xlPasteValues
    End If
Next r
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: กรอกข้อมูลเว้นแถวปรับ Code อย่างไรให้ได้ข้อมูลมาครบคะ

#19

Post by suka »

อาจารย์ช่วยปรับโค้ด ได้รับความรู้ความเข้าใจมากขึ้นมากเลยค่ะ ขอบพระคุณค่ะอาจารย์
Post Reply