: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 เชื่อมต่อจาก workbook ไป google sheet

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
9KiTTi
Member
Member
Posts: 196
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

ขออนุญาตถามกรณีปัญหาเขียน code เชื่อมต่อจาก workbook ไป google sheet

#1

Post by 9KiTTi »

ขออนุญาตสอบถามกรณีผมเขียน code เพื่อให้ทำงานตอนเปิดไฟล์ excel ให้ตรวจสอบกับช่อง A1 ใน workbook ชื่อชีท Main ถ้ามีค่าน้อยกว่า ในช่อง A1 ของไฟล์ google sheet ชื่อชีท version ให้แสดงข้อความแจ้งเตือน แต่ติด error ตัวนี้ครับ Compile Error: Expected Array ขอคำแนะนำด้วยครับ ขอบพระคุณครับ

Code: Select all

Sub Checkver()
    Dim ws As Worksheet
    Dim ul As String
    Dim ky As String

    ky = "1uAFl3HGeXzyS0vCR9shHQCoDYYMmsHfdktM3FNIdm9E"
    ul = "https://spreadsheets.google.com/tq?tqx=out:html&key=" & ky

    If ws("Main").Range("A1").Value < ul("Version").Range("A1") Then
        MsgBox "ข้อมูลตรง"
    Else
        MsgBox "กรุณาปรับข้อมูลให้ตรงกัน!!!"
    End If
End Sub

'https://docs.google.com/spreadsheets/d/1uAFl3HGeXzyS0vCR9shHQCoDYYMmsHfdktM3FNIdm9E/edit?usp=sharing
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30746
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตถามกรณีปัญหาเขียน code เชื่อมต่อจาก workbook ไป google sheet

#2

Post by snasui »

:D ตัวอย่างการ Query ข้อมูลจาก Google Sheet มาเทียบกับค่าเป้าหมายใน Excel ครับ

Code: Select all

Sub Import_Sheets_to_Excel()
    Dim QRT As QueryTable, ul As String, ky As String
    With Worksheets("Main")
        If .QueryTables.Count > 0 Then
            .QueryTables(1).Delete
            .Range("b1:b2").ClearContents
        End If
        ky = "1uAFl3HGeXzyS0vCR9shHQCoDYYMmsHfdktM3FNIdm9E"
        ul = "https://spreadsheets.google.com/tq?tqx=out:html&key=" & ky
        Set QRT = .QueryTables.Add(Connection:="URL;" & ul, Destination:=.Range("B1"))
        QRT.Name = "GoogleSheetData"
        QRT.FieldNames = True
        QRT.RowNumbers = False
        QRT.FillAdjacentFormulas = False
        QRT.PreserveFormatting = True
        QRT.RefreshOnFileOpen = False
        QRT.BackgroundQuery = True
        QRT.RefreshStyle = xlInsertDeleteCells
        QRT.SavePassword = False
        QRT.SaveData = True
        QRT.AdjustColumnWidth = True
        QRT.RefreshPeriod = 0
        QRT.Refresh BackgroundQuery:=False
        If .Range("A1").Value < .Range("b2") Then
            MsgBox "ข้อมูลตรงกัน", vbExclamation
        Else
            MsgBox "กรุณาปรับข้อมูลให้ตรงกัน!!!", vbExclamation
        End If
    End With
End Sub
9KiTTi
Member
Member
Posts: 196
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตถามกรณีปัญหาเขียน code เชื่อมต่อจาก workbook ไป google sheet

#3

Post by 9KiTTi »

snasui wrote: Mon Mar 11, 2024 8:09 am :D ตัวอย่างการ Query ข้อมูลจาก Google Sheet มาเทียบกับค่าเป้าหมายใน Excel ครับ

Code: Select all

Sub Import_Sheets_to_Excel()
    Dim QRT As QueryTable, ul As String, ky As String
    With Worksheets("Main")
        If .QueryTables.Count > 0 Then
            .QueryTables(1).Delete
            .Range("b1:b2").ClearContents
        End If
        ky = "1uAFl3HGeXzyS0vCR9shHQCoDYYMmsHfdktM3FNIdm9E"
        ul = "https://spreadsheets.google.com/tq?tqx=out:html&key=" & ky
        Set QRT = .QueryTables.Add(Connection:="URL;" & ul, Destination:=.Range("B1"))
        QRT.Name = "GoogleSheetData"
        QRT.FieldNames = True
        QRT.RowNumbers = False
        QRT.FillAdjacentFormulas = False
        QRT.PreserveFormatting = True
        QRT.RefreshOnFileOpen = False
        QRT.BackgroundQuery = True
        QRT.RefreshStyle = xlInsertDeleteCells
        QRT.SavePassword = False
        QRT.SaveData = True
        QRT.AdjustColumnWidth = True
        QRT.RefreshPeriod = 0
        QRT.Refresh BackgroundQuery:=False
        If .Range("A1").Value < .Range("b2") Then
            MsgBox "ข้อมูลตรงกัน", vbExclamation
        Else
            MsgBox "กรุณาปรับข้อมูลให้ตรงกัน!!!", vbExclamation
        End If
    End With
End Sub
ทดสอบแล้วครับ เป็นการ copy มาใส่ครับอาจารย์ แล้วจะขึ้นข้อความว่า ข้อมูลตรงกัน ไม่ว่าจะเปลี่ยนค่าที่สมุดงานไหน หลังจากรัน code ค่าจะเปลี่ยนทั้ง 2 สมุดงานครับ ไม่ขึ้นข้อความตามเงื่อนไขที่ต้องการครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30746
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตถามกรณีปัญหาเขียน code เชื่อมต่อจาก workbook ไป google sheet

#4

Post by snasui »

:D การเช็คค่าตรง ๆ แบบนั้นไม่ได้เขียนสั้น ๆ แบบที่เขียนมาได้ครับ วิธีที่ผมทำตัวอย่างไว้นี้เป็นการทำให้สามารถทำงานต่อได้ หากพบว่าวิธีเดิมทำได้แบบง่าย ๆ รบกวนนำมาแชร์ด้วยครับ

ส่วนที่ขึ้นว่าข้อมูลตรงกันนั้น จำเป็นต้องตรวจสอบเงื่อนไขว่าเขียนเอาไว้อย่างไร ในเซลล์ A1 มีค่าอะไรอยู่ก่อนแล้วหรือไม่ครับ
9KiTTi
Member
Member
Posts: 196
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตถามกรณีปัญหาเขียน code เชื่อมต่อจาก workbook ไป google sheet

#5

Post by 9KiTTi »

ขอบพระคุณครับอาจารย์
Post Reply