Page 1 of 1

code vba

Posted: Thu Sep 24, 2020 6:16 pm
by phon
อาจารย์ครับ ผมต้องการ copy ชื่อคอลัมน์ออกมาด้วยต้องแก้ code ตรงไหนครับโดยมี dSDate และ dEDate เป็นเงื่อนไขครับ

Re: code vba

Posted: Thu Sep 24, 2020 8:01 pm
by snasui
:D กรุณาระบุ Module, Procedure ที่ติดปัญหา ผลลัพธ์ที่ต้องการหาก Code ทำงานถูกต้อง จะได้เข้าถึงปัญหาได้โดยไวครับ

Re: code vba

Posted: Fri Sep 25, 2020 7:54 am
by phon
Application.ScreenUpdating = False
Dim wsData As Worksheet, wsDate As Worksheet, wsNoEntry As Worksheet
Dim dSDate As Date, dEDate As Date
Dim lRowStart As Long, lRowEnd As Long
Dim aData() As Variant
Dim i As Long


Set wsData = ThisWorkbook.Sheets("Sheet1")
Set wsDate = ThisWorkbook.Sheets("Sheet2")
Set wsNoEntry = ThisWorkbook.Sheets("Sheet2")

dSDate = wsNoEntry.Range("A1").value
dEDate = wsNoEntry.Range("B1").value

aData = wsData.Range("D1:AP1000").value


For i = 1 To 1000
If aData(i, 2) = dSDate Then
lRowStart = i
Debug.Print "Start row = " & lRowStart
Exit For
End If
Next i

For i = 1000 To 1 Step -1
If aData(i, 2) = dEDate Then
lRowEnd = i
Debug.Print "End row = " & lRowEnd
Exit For
End If
Next i

wsData.Range("D" & lRowStart, "AP" & lRowEnd).Copy
wsDate.Range("A5").PasteSpecial

Application.CutCopyMode = False
Application.ScreenUpdating = True
wsDate.Activate

Re: code vba

Posted: Fri Sep 25, 2020 8:31 am
by logic
โค้ดนี้อยู่ในโมดูลไหน ชื่ออะไร อยากได้คำตอบวางตรงไหน หน้าตาคำตอบเป็นแบบไหน ที่อาจารย์ถามคือแบบนี้ครับ

เวลาวางโค้ดก็วางให้เป็นข้อความเขียว ๆ ดูกติกาข้อ 5 ด้านบนครับ 🙄

Re: code vba

Posted: Fri Sep 25, 2020 8:44 am
by phon
Module1
Sub LookupRange()
ครับ

Re: code vba

Posted: Fri Sep 25, 2020 8:51 am
by phon
Module1
Sub LookupRange()
ครับ
อยากให้ชื่อ คอลัมน์ออกมาด้วยครับ

Re: code vba

Posted: Fri Sep 25, 2020 8:53 am
by phon
DATA อยู่ Sheet1 ครับ

Re: code vba

Posted: Fri Sep 25, 2020 9:22 am
by logic
คัดลอกหัวบรรทัดด้วยโค้ดนี้ครับ

wsData.Range("D1:AP1").Copy wsDate.Range("A4")

วางหลัง Next i

Code: Select all

'...
    Next i
    wsData.Range("D1:AP1").Copy wsDate.Range("A4")
    wsData.Range("D" & lRowStart, "AP" & lRowEnd).Copy
    wsDate.Range("A5").PasteSpecial
    
    'clear clipboard
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    wsDate.Activate
End Sub

Re: code vba

Posted: Fri Sep 25, 2020 10:32 am
by phon
ได้แล้วครับอาจารย์ ขอบคุณมากครับผม