: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

ปัญหาการส่งข้อมูลไปวางที่ 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: 203
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

ปัญหาการส่งข้อมูลไปวางที่ google sheet

#1

Post by 9KiTTi »

ขออนุญาตสอบถามครับ ผมนำ vba จาก google มาปรับแก้เพื่อให้สามารถอัพโหลดข้อมูลจากช่วง A2:T8 ไปยัง google sheet แต่ติด error ไม่สามารถไม่ทำงาน รบกวนขอคำแนะนำด้วยครับ ขอบพระครับ

Code: Select all

Sub submitForm()

    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    strURL = "https://docs.google.com/spreadsheets/d/1V0aIM5hIYHdpHTQBA89gBmwIaT7CJ7d9U4TDHI2X8Ws/formResponse?ifq"
    
    intTotalRows = ThisWorkbook.Sheets("Data").Cell(Rows.Count, 1).End(xlUp).Row
    strUniqueID = ThisWorkbook.Sheets("Data").Range("A27").Text
    
    For rowNo = 2 To inTotalRows
        
        strHoscode = ThisWorkbook.Sheets("Data").Range("A" & rowNo).Text
        strHos = ThisWorkbook.Sheets("Data").Range("B" & rowNo).Text
        strTotal_case = ThisWorkbook.Sheets("Data").Range("C" & rowNo).Text
        strTotal_money = ThisWorkbook.Sheets("Data").Range("D" & rowNo).Text
        strMoneyRecives = ThisWorkbook.Sheets("Data").Range("E" & rowNo).Text
        strTotal_caseRecives = ThisWorkbook.Sheets("Data").Range("F" & rowNo).Text
        strTotal_case_notRecives = ThisWorkbook.Sheets("Data").Range("G" & rowNo).Text
        strappeal_money = ThisWorkbook.Sheets("Data").Range("H" & rowNo).Text
        strappeal_case_recives = ThisWorkbook.Sheets("Data").Range("I" & rowNo).Text
        strappeal_case_notrecives = ThisWorkbook.Sheets("Data").Range("J" & rowNo).Text
        strHC_money = ThisWorkbook.Sheets("Data").Range("K" & rowNo).Text
        strHC_case = ThisWorkbook.Sheets("Data").Range("L" & rowNo).Text
        strAE_Money = ThisWorkbook.Sheets("Data").Range("M" & rowNo).Text
        strAE_Case = ThisWorkbook.Sheets("Data").Range("N" & rowNo).Text
        strPP_Money = ThisWorkbook.Sheets("Data").Range("O" & rowNo).Text
        strPP_Case = ThisWorkbook.Sheets("Data").Range("P" & rowNo).Text
        strOPFS_Money = ThisWorkbook.Sheets("Data").Range("Q" & rowNo).Text
        strOPFS_Case = ThisWorkbook.Sheets("Data").Range("R" & rowNo).Text
        strTotalBath = ThisWorkbook.Sheets("Data").Range("S" & rowNo).Text
        strTotalCase = ThisWorkbook.Sheets("Data").Range("T" & rowNo).Text
        strStatus = ThisWorkbook.Sheets("Data").Range("U" & rowNo).Text
    
        strData = "&entry.1409202324=" & strHoscode
        strData = "&entry.869567421=" & strHos
        strData = "&entry.1817716227=" & strTotal_case
        strData = "&entry.1058867388=" & strTotal_money
        strData = "&entry.1200554119=" & strMoneyRecives
        strData = "&entry.618879238=" & strTotal_caseRecives
        strData = "&entry.1326498046=" & strTotal_case_notRecives
        strData = "&entry.1999532598=" & strappeal_money
        strData = "&entry.1684112441=" & strappeal_case_recives
        strData = "&entry.896384008=" & strappeal_case_notrecives
        strData = "&entry.864200327=" & strHC_money
        strData = "&entry.1783506789=" & strHC_case
        strData = "&entry.1844433011=" & strAE_Money
        strData = "&entry.1012783967=" & strAE_Case
        strData = "&entry.118809898=" & strPP_Money
        strData = "&entry.840118038=" & strPP_Case
        strData = "&entry.760455949=" & strOPFS_Money
        strData = "&entry.824958677=" & strOPFS_Case
        strData = "&entry.658889761=" & strTotalBath
        strData = "&entry.1806805796=" & strTotalCase

        strFinalUrl = strURL & strData
        http.Open "POST", strFinalUrl, False
        http.send

        If http.statusText = "OK" Then
            ThisWorkbook.Sheets("Data").Range("U" & rowNo) = "OK"
            strUniqueID = strUniqueID + 1
            ThisWorkbook.Sheets("Data").Range("A27") = strUniqueID
            ThisWorkbook.Sheets("Data").Range("A" & rowNo) = strUniqueID
        End If
        
    Next
    
    MsgBox "Done"

End Sub
google sheet
https://docs.google.com/spreadsheets/d/ ... sp=sharing
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30801
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ปัญหาการส่งข้อมูลไปวางที่ google sheet

#2

Post by snasui »

:D ช่วยแจ้ง Error ที่พบ จับภาพนั้นมาด้วยจะได้เข้าถึงปัญหาได้โดยไวครับ

ที่มองเร็ว ๆ แล้วเห็นว่าไม่ถูกต้องตอนนี้มี 3 อย่างคือ
  1. ใน Code อ้างชีตชื่อ Data แต่ไม่มีชีตนี้อยู่จริง
  2. ใน Code อ้างตำแหน่งเซลล์เป็น cell(rows.count,rowno) ที่ถูกควรเป็น cells(rows.count,rowno)
  3. ตัวแปร intTotalRows เขียนไม่เหมือนกัน
9KiTTi
Member
Member
Posts: 203
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ปัญหาการส่งข้อมูลไปวางที่ google sheet

#3

Post by 9KiTTi »

snasui wrote: Sun May 12, 2024 9:12 am :D ช่วยแจ้ง Error ที่พบ จับภาพนั้นมาด้วยจะได้เข้าถึงปัญหาได้โดยไวครับ

ที่มองเร็ว ๆ แล้วเห็นว่าไม่ถูกต้องตอนนี้มี 3 อย่างคือ
  1. ใน Code อ้างชีตชื่อ Data แต่ไม่มีชีตนี้อยู่จริง
  2. ใน Code อ้างตำแหน่งเซลล์เป็น cell(rows.count,rowno) ที่ถูกควรเป็น cells(rows.count,rowno)
  3. ตัวแปร intTotalRows เขียนไม่เหมือนกัน
ผมปรับแก้ไขตามที่อาจารย์แล้วครับ สามารถรัน VBA ได้ ไม่ติด error อะไร แต่ไม่สามารถส่งข้อมูลไปที่ google sheet ได้ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30801
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ปัญหาการส่งข้อมูลไปวางที่ google sheet

#4

Post by snasui »

:D Code น่าจะเป็นตามด้านล่างครับ

Code: Select all

Sub submitFormx()
    With ThisWorkbook.Worksheets("Data")
    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    strURL = "https://docs.google.com/spreadsheets/d/1V0aIM5hIYHdpHTQBA89gBmwIaT7CJ7d9U4TDHI2X8Ws/formResponse?ifq"
    
    intTotalRows = .Cells(.Rows.Count, 1).End(xlUp).Row
    strUniqueID = .Range("A27").Text
    
    For rowNo = 2 To intTotalRows
        strHoscode = .Range("A" & rowNo).Text
        strHos = .Range("B" & rowNo).Text
        strTotal_case = .Range("C" & rowNo).Text
        strTotal_money = .Range("D" & rowNo).Text
        strMoneyRecives = .Range("E" & rowNo).Text
        strTotal_caseRecives = .Range("F" & rowNo).Text
        strTotal_case_notRecives = .Range("G" & rowNo).Text
        strappeal_money = .Range("H" & rowNo).Text
        strappeal_case_recives = .Range("I" & rowNo).Text
        strappeal_case_notrecives = .Range("J" & rowNo).Text
        strHC_money = .Range("K" & rowNo).Text
        strHC_case = .Range("L" & rowNo).Text
        strAE_Money = .Range("M" & rowNo).Text
        strAE_Case = .Range("N" & rowNo).Text
        strPP_Money = .Range("O" & rowNo).Text
        strPP_Case = .Range("P" & rowNo).Text
        strOPFS_Money = .Range("Q" & rowNo).Text
        strOPFS_Case = .Range("R" & rowNo).Text
        strTotalBath = .Range("S" & rowNo).Text
        strTotalCase = .Range("T" & rowNo).Text
        strStatus = .Range("U" & rowNo).Text
    
        strdata = ""
        strdata = "&entry.1409202324=" & strHoscode
        strdata = strdata & "&entry.869567421=" & strHos
        strdata = strdata & "&entry.1817716227=" & strTotal_case
        strdata = strdata & "&entry.1058867388=" & strTotal_money
        strdata = strdata & "&entry.1200554119=" & strMoneyRecives
        strdata = strdata & "&entry.618879238=" & strTotal_caseRecives
        strdata = strdata & "&entry.1326498046=" & strTotal_case_notRecives
        strdata = strdata & "&entry.1999532598=" & strappeal_money
        strdata = strdata & "&entry.1684112441=" & strappeal_case_recives
        strdata = strdata & "&entry.896384008=" & strappeal_case_notrecives
        strdata = strdata & "&entry.864200327=" & strHC_money
        strdata = strdata & "&entry.1783506789=" & strHC_case
        strdata = strdata & "&entry.1844433011=" & strAE_Money
        strdata = strdata & "&entry.1012783967=" & strAE_Case
        strdata = strdata & "&entry.118809898=" & strPP_Money
        strdata = strdata & "&entry.840118038=" & strPP_Case
        strdata = strdata & "&entry.760455949=" & strOPFS_Money
        strdata = strdata & "&entry.824958677=" & strOPFS_Case
        strdata = strdata & "&entry.658889761=" & strTotalBath
        strdata = strdata & "&entry.1806805796=" & strTotalCase

        strFinalUrl = strURL & strdata
        http.Open "POST", strFinalUrl, False
        http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        http.send

        If http.statusText = "OK" Then
            .Range("U" & rowNo) = "OK"
            strUniqueID = strUniqueID + 1
            .Range("A27") = strUniqueID
            .Range("A" & rowNo) = strUniqueID
        End If
        
    Next
    
    MsgBox "Done"
    End With
End Sub
การที่ Post ไม่ได้ลองเช็ค URL, field_number ฯลฯ

ด้านล่างนี้คือตัวอย่างจาก Copilot ในการ Post ข้อมูลจาก Excel ไปยัง Google Forms

Code: Select all

Sub PostDataToGoogleForm()
    Dim httpRequest As Object
    Set httpRequest = CreateObject("MSXML2.ServerXMLHTTP")

    Dim formURL As String
    Dim formData As String

    ' Replace with your Google Form URL
    formURL = "<FORM_URL>"

    ' Replace with your form data
    ' Each form field should be in the format "entry.<field_number>.single=<DATA>"
    formData = "entry.0.single=<DATA1>&entry.1.single=<DATA2>&..."

    httpRequest.Open "POST", formURL, False
    httpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    httpRequest.send formData
End Sub
Post Reply