EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)e = wbShare.sheets("abcd").range("a" & rows.count).end(xlup).value
suka wrote: ขอรบกวนช่วยแก้เมื่อใช้ Form บันทึกข้อมูลไปที่แชร์ไฟล์พร้อมกันแล้วเลขที่เอกสารที่เซลล์ N1 ชีท Enterthedata ต้วอย่างไฟล์แนบไม่อัพเดทค่ะCode: Select all
With Worksheets("Enterthedata") .Range("N1") = .Range("N1") + 1 End With
Code: Select all
With Worksheets("Enterthedata")
.Range("N1") = .Range("N1") + 1
End With
Code: Select all
If Worksheets("Enterthedata").Range("N1") = "" Then
Set re = wbShare.Sheets("Sheet1").Range("B2").Range("E") + 1
End If
Code: Select all
With Worksheets("Enterthedata")
.Range("N1") = .Range("N1") + 1
End With
Code: Select all
e = wbShare.sheets("abcd").range("a" & rows.count).end(xlup).value
Code: Select all
e = wbShare.sheets("abcd").range("a" & rows.count).end(xlup).value+1
Code: Select all
With Worksheets("Enterthedata")
.Range("N1") = .Range("N1" & e)
End With
Code: Select all
With wbShare
e = wbShare.Sheets("Sheet1").Range("e" & Rows.Count).End(xlUp).Value + 1
Worksheets("Enterthedata").Range("N1").Value = e
End With
Code: Select all
With wbShare
e = .Sheets("Sheet1").Range("e" & Rows.Count).End(xlUp).Value + 1
FormBook.Worksheets("Enterthedata").Range("N1").Value = e
End With
With wbShare...End With
เราสามารถละคำว่า wbShare ออกไปได้ นี่คือประโยชน์ของ With..End With
หากต้องการจะเขียนเต็ม ๆ ก็ไม่ต้องเขียน With...End With
มาครอบครับCode: Select all
e = .Sheets("Sheet1").Range("e" & Rows.Count).End(xlUp).Value + 1
FormBook.Worksheets("Enterthedata").Range("N1").Value = e
จากคำถามนี้ ถ้าใช่ หมายความว่าตัวเลขที่บันทึก ณ ครั้งนี้ไม่ใช่หมายเลขหลังบวก 1 แต่เป็นหมายเลขที่ให้ไว้แล้วในครั้งก่อนซึ่งเป็นค่าใน N1 นั่นหมายความว่าเป็นตัวเลขก่อนบวก 1 การบวก 1 เพื่อจะเอาไปใช้ในครั้งถัดไป ไม่ใช่ใช้ในครั้งนี้ ต้องเข้าใจตรงนี้และตอบตรงนี้ให้ได้ก่อนครับsnasui wrote: ช่วยทบทวนอีกรอบว่าเซลล์ N1 ที่ชีท Enterthedata ใช้เพื่อให้หมายเลขลำดับถัดไปที่จะบันทึกใช่หรือไม่ครับ
a= formBook.Sheets("Enterthedata").Range("O1" & Rows.[color=#FF0000]Count[/color]).End(xlUp).Value
.rows.count
เป็นการนับว่า Worksheet นั้นมีกี่บรรทัด เป็นการเขียนให้เกิดความยืดหยุ่นต่อ Excel ที่ต่าง Version กันเนื่องจากว่ามีบรรทัดไม่เท่ากันworkbooks(1)Sheets(1).range("a" & rows.count).end(xlup)
สังเกตว่าหลัง a จะไม่ใส่ตัวเลขเข้าไปอีก เพราะตัวเลขมาจาก .rows.count
อยู่แล้วCode: Select all
With wbShare
o = .Sheets("Sheet1").Range("D" & Rows.Count).End(xlUp) = formBook.Worksheets("Enterthedata").Range("n2")
End With
Code: Select all
Sub PasteData()
Dim wbShare As Workbook
Dim formBook As Workbook
Dim rTarget As Range
Dim i As Integer
Dim e As Long
Dim o As Long
Dim rs As Range
Dim rt As Range
Dim rd As Range
Set formBook = ThisWorkbook
Set wbShare = Workbooks("PoWbShare.xlsx")
Application.ScreenUpdating = False
With wbShare
e = .Sheets("Sheet1").Range("e" & Rows.Count).End(xlUp).Value + 1
formBook.Worksheets("Enterthedata").Range("m2").Value = e
With wbShare
o = .Sheets("Sheet1").Range("D" & Rows.Count).End(xlUp) = formBook.Worksheets("Enterthedata").Range("n2")
End With
End With
With formBook
i = .Worksheets("Enterthedata").Range("C225").Value
End With
wbShare.Save
With formBook
i = .Worksheets("Enterthedata").Range("C225").Value
End With
With formBook.Worksheets("Template")
Set rs = .Range(.Range("A2"), .Range("AC" & i + 1))
End With
Set rt = wbShare.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
If formBook.Worksheets("Enterthedata").Range("C225") = True Then
End If
With formBook
i = formBook.Sheets("Enterthedata").Range("C225").Value
End With
If formBook.Worksheets("Enterthedata").Range("B204") = "" Then
MsgBox "Your data is empty. Fill your data and click record button again."
Exit Sub
End If
rs.Copy: rt.PasteSpecial xlPasteValues
wbShare.Save
formBook.Save
formBook.Activate
Range("D2").Select
Application.CutCopyMode = False
formBook.Sheets("Enterthedata").Range("D2,B204:B220,D204:D220,D222, E204:F220,O204,N204:N220").ClearContents
Application.ScreenUpdating = True
End Sub