Board logo

標題: EXCEL貼入網頁問題 [打印本頁]

作者: die78325    時間: 2012-12-6 15:52     標題: EXCEL貼入網頁問題

With .Document
                                        .getElementsByName("q11")(0).Value = 字串   ' 找到q11欄位填入
                                    end with
有試過可以定義變數來替代字串  但 我只試出可以選擇一格    例如:  g =sheets("測試").range("A1")    該網頁會填入A1的值   
但我希望可以利用工作頁的範圍儲存格複製貼入     我需要 A1:H10的範圍複製貼入網頁內   
爬文大家都只抓網頁資料下來EXCEL 但卻沒有貼入網頁的詢問 = = 請教各位大大幫我解決這問題 ~!!  感激不盡....
就差這步了...........拜託各位大大們!!!
作者: GBKEE    時間: 2012-12-6 16:16

回復 1# die78325
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim R, 字串 As String, S As String
  4.     For Each R In [A1:H10].Rows
  5.         S = Join(Application.Transpose(Application.Transpose(R)), " ")
  6.         字串 = IIf(字串 = "", S, 字串 & Chr(10) & S)
  7.    Next
  8.    '
  9.    '
  10.    
  11.   ' With .Document
  12.    '     .getElementsByName("q11")(0).Value = 字串   ' 找到q11欄位填入
  13.   'End With

  14. End Sub
複製代碼

作者: die78325    時間: 2012-12-6 16:46

回復 2# GBKEE


    感謝大大 現在可以貼進去了
但是遇到個問題 == 我A欄是2012/12/5 14:19   時間格式  但用你得程式跑下去 就變41248.4423263889
  再麻煩大大了.....
作者: die78325    時間: 2012-12-6 17:21

回復 2# GBKEE


    那如果 A1:H?    H的欄位不一定     [A1:H10]  這種的可以用 end.xlup  嗎?  
    也請大大幫我一併處理  感謝您 ....
作者: GBKEE    時間: 2012-12-7 13:15

回復 4# die78325
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar(), 字串 As String, xi As Integer, xii As Integer, S As String, Rng As Range
  4.     'With Range("A1").CurrentRegion
  5.     'CurrentRegion 屬性  傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。唯讀
  6.     'MsgBox .Address
  7.     Set Rng = Sheet1.[a1]
  8.     With Sheet1.Range(Rng.Address, Cells(Rng.End(xlDown).Row, Rng.End(xlToRight).Column).Address)
  9.         MsgBox .Address(, , , 1, 1)
  10.         Ar = .Value
  11.         For xi = 1 To .Rows.Count
  12.             For xii = 1 To .Columns.Count
  13.                 Ar(xi, xii) = IIf(.Cells(xi, xii) <> "", .Cells(xi, xii).Text, vbTab)
  14.             Next
  15.         Next
  16.         For xi = 1 To UBound(Ar)
  17.             S = Join(Application.Transpose(Application.Transpose(Application.Index(Ar, xi))), vbTab)
  18.             字串 = IIf(字串 = "", S & vbLf, 字串 & vbLf & S)
  19.         Next
  20.         MsgBox 字串
  21.    End With
  22. '  '
  23.    '
  24.    
  25.   ' With .Document
  26.    '     .getElementsByName("q11")(0).Value = 字串   ' 找到q11欄位填入
  27.   'End With

  28. End Sub
複製代碼

作者: die78325    時間: 2012-12-7 13:36

回復 5# GBKEE


    大大好強@@"
但是這邊的語法好特殊  有空幫我註解一下嗎......想多學習這種連續串起來的語法!@@
謝謝大大~~
作者: GBKEE    時間: 2012-12-7 13:51

回復 6# die78325
這些並不難,不了解的可多看VBA的說明
作者: die78325    時間: 2012-12-10 13:20

回復 7# GBKEE


    大大 現在發現一個問題 = =
  當資料過多 他沒辦法複製到以下的資料   就原本應該要複製50列    因為String字數太多 只複製到37筆......
如果刪掉後面多餘的字   才能提升到40多筆   所以確定判斷為資料過多   那有辦法解決嗎?  就是有多少就要複製多少.....  
因為不解決這問題的話 沒辦法繼續作業下去   因為到月底可能會有100多筆 = ="

或者可以判斷J欄有0 就代表上傳過了.....然後只抓取沒上傳過的 有辦法嗎?? 因為資料是一值往下增加 但是新增速度部會超過30筆
更何況我是一值持續在上傳   不可能在短時間內超過30筆   請大大幫我想辦法吧.....

盡可能幫我做第一種  (有多少複製多少) 因為怕漏掉......
作者: GBKEE    時間: 2012-12-10 15:31

回復 8# die78325
DataObject 物件
在進行轉換動作時,做為格式化文字資料的暫存區域。其也可以暫存和儲存在 DataObject 的文字片段相關的格式。
  1. Option Explicit
  2. Sub Ex()  '使用DataObject 物件
  3.     Dim Rng As Range
  4.     'Dim Clip As New DataObject
  5.     ' New DataObject:  VBA需設定引用 Microsoft Forms 2.0 Object Library
  6.     Dim Clip As Object  '不需設定引用 Microsoft Forms 2.0 Object Library
  7.     Set Clip = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
  8.     Set Rng = Sheet1.[a1]
  9.     Sheet1.Range(Rng.Address, Cells(Rng.End(xlDown).Row, Rng.End(xlToRight).Column).Address).Copy
  10.     Clip.GetFromClipboard
  11.     '
  12.     '
  13.    
  14.    With .Document
  15.         .getElementsByName("q11")(0).Value = Clip.GetText(1)    ' 找到q11欄位填入
  16.   End With

  17. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)