彰化一整天的論壇

 找回密碼
 立即註冊
查看: 119|回復: 19

vba執行上的一堆問題

[複製鏈接]
發表於 2018-7-28 09:22:27 | 顯示全部樓層 |閱讀模式
1.用VBA開啟網頁一直無法最大化老師PO的對IE按右鍵內容改成最大化也試過了還是不能
  要怎麼讓他最大化不然IE的視窗跑來跑去的很難對
2.VBA要如何對 打靶1.png 這個點選我試了好多次都不能點附上原始檔

  1.   <tr bgcolor='#ffe256'>
  2.             <td width="10%" align="center">
  3.                 1
  4.                 <input type="hidden" name="CHECK_LOT_ID1" value="542">
  5.                 <input type="hidden" name="EQUIP_ID1" value="E00000548">
  6.                 <input type="hidden" name="YES_NO_FLAG1" value="Y">
  7.             </td>
  8.             <td width="30%" >
  9.                 <input type="hidden" name="chk_item1" value="孔大">
  10.                 <input type="hidden" name="upper1" value="">
  11.                 <input type="hidden" name="lower1" value="">
  12.                 <input type="hidden" name="uom1" value="">

  13.                 孔大
  14.             </td>
  15.             <td width="30%" align="center"><input type="hidden" name="chk_item_desc1" value="不可有">不可有</td>
  16.             <td width="30%" align="center">
  17.                
  18.                     <input type="radio" name="r1" value="Y">正常
  19.                     <input type="radio" name="r1" value="N">異常
  20.                
  21.             </td>
  22.         </tr>
  23.    
  24.            
  25.         <tr bgcolor='#ffe256'>
  26.             <td width="10%" align="center">
  27.                 2
  28.                 <input type="hidden" name="CHECK_LOT_ID2" value="551">
  29.                 <input type="hidden" name="EQUIP_ID2" value="E00000548">
  30.                 <input type="hidden" name="YES_NO_FLAG2" value="Y">
  31.             </td>
  32.             <td width="30%" >
  33.                 <input type="hidden" name="chk_item2" value="孔巴里">
  34.                 <input type="hidden" name="upper2" value="">
  35.                 <input type="hidden" name="lower2" value="">
  36.                 <input type="hidden" name="uom2" value="">

  37.                 孔巴里
  38.             </td>
  39.             <td width="30%" align="center"><input type="hidden" name="chk_item_desc2" value="不可有">不可有</td>
  40.             <td width="30%" align="center">
  41.                
  42.                     <input type="radio" name="r2" value="Y">正常
  43.                     <input type="radio" name="r2" value="N">異常
  44.                
  45.             </td>
  46.         </tr>
  47.    
  48.            
  49.         <tr bgcolor='#ffe256'>
  50.             <td width="10%" align="center">
  51.                 3
  52.                 <input type="hidden" name="CHECK_LOT_ID3" value="9362">
  53.                 <input type="hidden" name="EQUIP_ID3" value="E00000548">
  54.                 <input type="hidden" name="YES_NO_FLAG3" value="N">
  55.             </td>
  56.             <td width="30%" >
  57.                 <input type="hidden" name="chk_item3" value="板面刮傷">
  58.                 <input type="hidden" name="upper3" value="126">
  59.                 <input type="hidden" name="lower3" value="0">
  60.                 <input type="hidden" name="uom3" value="片">
複製代碼
3.執行玩跳出一個視窗兆呈IE無法關閉 打靶2.png 要按鍵盤的Enter或者空白鍵才會消失
  該如何寫VBAㄋ


問題有點多麻煩老師了

                                                        謝謝


回復

使用道具 舉報

發表於 2018-7-28 10:00:56 | 顯示全部樓層
一次問一個問題,解決了再問下一個問題,您那一個問題要先.
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2018-7-28 10:07:34 | 顯示全部樓層
從IE最大化開始
回復 支持 反對

使用道具 舉報

發表於 2018-7-28 12:34:50 | 顯示全部樓層
  1. #If VBA7 Or Win64 Then
  2.     Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  3. #Else
  4.     Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

  5. #End If


  6. Global Const SW_MAXIMIZE = 3
  7. Global Const SW_SHOWNORMAL = 1
  8. Global Const SW_SHOWMINIMIZED = 2

  9. Sub open_ie_max()
  10.     Dim objIE As Object
  11.     Set objIE = CreateObject("InternetExplorer.Application")
  12.     objIE.Visible = True
  13.     apiShowWindow objIE.hwnd, SW_MAXIMIZE
  14.     objIE.navigate "http://blog.bestdaylong.com"
  15. End Sub
複製代碼

在模組加上以上程式碼.就可以.

open_ie_max.xls

41 KB, 下載次數: 1

售價: 1 金錢  [記錄]  [購買]

回復 支持 反對

使用道具 舉報

發表於 2018-7-28 12:54:11 | 顯示全部樓層
第2點上傳您的程式碼,我幫您看那裡有錯.
回復 支持 反對

使用道具 舉報

發表於 2018-7-28 20:16:46 | 顯示全部樓層
imingho 發表於 2018-7-28 12:54
第2點上傳您的程式碼,我幫您看那裡有錯.

程式碼如下.
  1. Set oHTML_Element = ie.document.getElementsByName("r1")(0)
  2.    If Not oHTML_Element Is Nothing Then
  3.       oHTML_Element.Value = "Y"
  4.   end if
複製代碼
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2018-7-28 22:04:20 來自手機 | 顯示全部樓層
恩恩那老師第三點跳出的確任畫面要怎麼消掉
回復 支持 反對

使用道具 舉報

發表於 2018-7-28 23:26:26 | 顯示全部樓層
windbjo4 發表於 2018-7-28 22:04
恩恩那老師第三點跳出的確任畫面要怎麼消掉

您可以使用

  1. Application.SendKeys("~")   '送出enter
複製代碼


相關資料可參考
https://msdn.microsoft.com/zh-tw/vba/excel-vba/articles/application-sendkeys-method-excel
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2018-7-29 09:06:54 | 顯示全部樓層
最大化錯誤.png 老師最大化單獨使用OK但搭配輸入數據就不能了 TTS2檢點.xls (108.5 KB, 下載次數: 6)
回復 支持 反對

使用道具 舉報

發表於 2018-7-29 10:24:25 | 顯示全部樓層
windbjo4 發表於 2018-7-29 09:06
老師最大化單獨使用OK但搭配輸入數據就不能了

這個範例的變數是用objIE,您之前的是用ie,變數不同當然不能執行,要看懂程式的意義,不是把不同的程式放在一起就可以執行.
  1. #If VBA7 Or Win64 Then
  2.     Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  3. #Else
  4.     Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

  5. #End If


  6. Global Const SW_MAXIMIZE = 3
  7. Global Const SW_SHOWNORMAL = 1
  8. Global Const SW_SHOWMINIMIZED = 2

  9. Sub open_ie_max()
  10.     Dim ie As Object
  11.     Set ie = CreateObject("InternetExplorer.Application")
  12.     ie.Visible = True
  13.     apiShowWindow objIE.hwnd, SW_MAXIMIZE
  14.     ie.navigate "http://home13.compeq.com.tw/ctshopfloor/WipEquipParams/tts2Entry.asp"
  15.      While ie.Busy Or ie.readyState <> 10: DoEvents: Wend

  16.    Set oHTML_Element = ie.document.getElementsByName("dept_code")(0)
  17.    If Not oHTML_Element Is Nothing Then oHTML_Element.Value = "B20"
  18.    Application.Wait (Now + TimeValue("0:00:01"))
  19.    '呼叫onchange
  20.    oHTML_Element.fireevent "onchange"   '執行 onchange事件
  21.    Application.Wait (Now + TimeValue("0:00:01"))
  22.    Set oHTML_Element = ie.document.getElementsByName("equip_name")(0)
  23.    If Not oHTML_Element Is Nothing Then oHTML_Element.Value = "水平冷卻線"
  24.   
  25.    oHTML_Element.fireevent "onchange"   '執行 onchange事件
  26.    Application.Wait (Now + TimeValue("0:00:01"))
  27.    
  28.    Set oHTML_Element = ie.document.getElementsByName("line_name")(0)
  29.    If Not oHTML_Element Is Nothing Then
  30.    oHTML_Element.Value = Sheet1.Range("B2").Value
  31.    End If
  32.       
  33.     '呼叫onchange
  34.    oHTML_Element.fireevent "onchange"   '執行 onchange事件
  35.    Application.Wait (Now + TimeValue("0:00:01"))
  36.    Set oHTML_Element = ie.document.getElementsByName("work_num")(0)
  37.    If Not oHTML_Element Is Nothing Then
  38.    oHTML_Element.Value = Sheet1.Range("D2").Value
  39.    End If
  40.    Application.Wait (Now + TimeValue("0:00:01"))
  41.    
  42.    Set oHTML_Element = ie.document.getElementsByName("lot_num1")(0)
  43.    If Not oHTML_Element Is Nothing Then
  44.    oHTML_Element.Value = Sheet1.Range("E2").Value
  45.    End If
  46.     Application.Wait (Now + TimeValue("0:00:01"))
  47.       
  48.       SetCursorPos 887, 436 'x and y position
  49.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  50.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  51.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  52.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  53.    
  54.    Set oHTML_Element = ie.document.getElementsByName("btn_add_lot")(0)
  55.       If Not oHTML_Element Is Nothing Then oHTML_Element.Click
  56.       For Each oHTML_Element In ie.document.getElementsByTagName("input")
  57.      If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
  58.    Next
  59.    
  60.    SetCursorPos 1078, 386 'x and y position
  61.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  62.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  63.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  64.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  65.    
  66.    
  67.     SetCursorPos 887, 436 'x and y position
  68.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  69.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  70.   mouse_event MOUSEEVENTF_LEFTDOWN, 2, 2, 2, 2
  71.   mouse_event MOUSEEVENTF_LEFTUP, 2, 2, 2, 2
  72.       
  73.     Application.Wait (Now + TimeValue("0:00:01"))
  74.    
  75.    
  76.     Set oHTML_Element = ie.document.getElementsByName("btn_start")(0)
  77.     If Not oHTML_Element Is Nothing Then oHTML_Element.Click
  78.     For Each oHTML_Element In ie.document.getElementsByTagName("input")
  79.     If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
  80.    Next
  81.     Application.Wait (Now + TimeValue("0:00:01"))
  82.    
  83.    Set oHTML_Element = ie.document.getElementsByName("check_value1")(0)
  84.    If Not oHTML_Element Is Nothing Then
  85.    oHTML_Element.Value = "0"
  86.    End If
  87.   
  88.      Set oHTML_Element = ie.document.getElementsByName("check_value2")(0)
  89.    If Not oHTML_Element Is Nothing Then
  90.    oHTML_Element.Value = Sheet1.Range("F2").Value
  91.    End If
  92.    
  93.     Set oHTML_Element = ie.document.getElementsByName("check_value3")(0)
  94.    If Not oHTML_Element Is Nothing Then
  95.    oHTML_Element.Value = "0"
  96.    End If
  97.    
  98.     Set oHTML_Element = ie.document.getElementsByName("check_value4")(0)
  99.    If Not oHTML_Element Is Nothing Then
  100.    oHTML_Element.Value = "0"
  101.    End If
  102.    
  103.    Set oHTML_Element = ie.document.getElementsByName("complete_btn")(0)
  104.     If Not oHTML_Element Is Nothing Then oHTML_Element.Click
  105.     For Each oHTML_Element In ie.document.getElementsByTagName("input")
  106.     If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
  107.    Next
  108.    
  109.      Application.SendKeys ("~") '送出Enter
  110.      
  111.               
  112.     '將ie關閉
  113.     ie.Quit
  114. '   For Each oHTML_Element In ie.document.getElementsByTagName("input")
  115. '      If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
  116. '   Next
  117.     Range("F2").Select
  118.     Selection.ClearContents
  119.     Range("E2").Select
  120.     Selection.ClearContents
  121.    
  122. End Sub
  123.    

複製代碼


回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2018-8-21 21:43 , Processed in 0.127097 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表