Page 1 of 1

Update range data [VBA]

Posted: Fri Aug 03, 2018 4:50 pm
by Arm_anucha
รบกวนช่วยเพิ่มเติม Code หน่อยครับ
อยากให้เมื่อค้นหาที่ชีท in โดยอ้างอิงจาก Name Manager [Select]
แล้วเมื่อกด Update ให้ที่ชืท in Update ค่าทั้งหมดตั้งแต่ B:G โดยส่วนที่อ้างอิง Update
Name Manager [Send ] ครับ เพราะตอนนี้ทำได้แค่ Update ทีละตำแหน่ง



Code: Select all

Sub FindAndPlaceValue()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim myVar As Range
Dim lr As Long
Dim findWhat As String, replaceWithWhat
Set myVar = [Select]
Set ws = Worksheets("in")
findWhat = myVar
replaceWithWhat = [Update]
lr = Cells(Rows.Count, 2).End(xlUp).Row
With ws.Range("A1:A" & lr)
   .AutoFilter Field:=1, Criteria1:=findWhat
   If .SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
      ws.Range("A2:A" & lr).SpecialCells(xlCellTypeVisible).Offset(0, 4).Value = replaceWithWhat
   End If
   .AutoFilter
End With
Application.ScreenUpdating = True
End Sub

Re: Update range data [VBA]

Posted: Fri Aug 03, 2018 8:05 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

เซลล์ J2 คีย์สูตร =MATCH(Select,in!A:A,0)

ปรับ Code ทั้งหมดเป็นตามด้านล่าง

Code: Select all

Sheets("in").Range("a" & Range("j2").Value).Resize([Send].Rows.Count, _
    [Send].Columns.Count).Value = [Send].Value
จะเป็นการนำ [Send] ไปวาง ไม่ใช่นำ [Update] ไปวาง

หากต้องการนำ [Update] ไปวางให้เปลี่ยน Range("a" & Range("j2") จาก a ไปเป็นคอลัมน์ที่ต้องการวางค่า Update และต้องเปลี่ยน [Send] ไปเป็น [Update] ครับ

Re: Update range data [VBA]

Posted: Fri Aug 03, 2018 8:45 pm
by Arm_anucha
เกือบตรงกับความต้องการแล้วครับแต่ติดอยู่นิดนึงครับ
เมื่อกด Update แล้วเลขลำดับที่ sheet save มันรันต่อไปเลยอะครับจากที่ BEA-01 ลำดับเป็น 1 , 2 ,3
พอกด update มันรับต่อไปเป็น 7 8 9 เลยครับ พอจะมีวิธีไหนเว้นช่วงลำดับไม่ต้อง Update บ้างไหมครับ

Re: Update range data [VBA]

Posted: Fri Aug 03, 2018 9:00 pm
by snasui
:D สร้าง Range Name เพิ่ม แบ่งเป็น 2 ช่วง เพื่อไม่เอาคอลัมน์ K ของชีต Save มาใช้ เมื่อวางก็ให้วางทีละช่วงครับ