返回列表 上一主題 發帖

是否有人可協助開發 ?

是否有人可協助開發 ?

自修快一季了 , 實在搞不出來 , 是否有人可以協助開發 , 如附件的需求 ?

TWN_2.zip (41.38 KB)

看到這一帖完整的過程,發現,真得要實做,但是要有人願意指正,感動
希望lpk187大大也可以指點一下小弟,因為小弟也有樓上大大的困擾
期待

TOP

我的需求都解決了 , 感謝 .......

TOP

我找到解法 !!

TOP

For I = Data_Year To End_Year         ' 由現有資料年度至系統年度更新
   
        For J = 4 To 1 Step -1                    ' 由第四季往下找
            
            On Error Resume Next
            Err.Clear
            
            Msgbog I & "  " & J
            Call Report_IFRS(Data_Comp, I, J)
            
            If Err.true Then
                             
               With Sheets(Data_Comp)
                    .Activate
                    Write_Col = .Range("1:1").Find(I).Col
                  
                    If J = 1 Or J = 4 Then
                        Read_Col = 2
                        Else
                        Read_Col = 4
                    End If
                  
                    MsgBox I & "  " & J & "  " & Write_Col & "  " & Read_Col
                  
                    '資料轉寫
                    'Set 推銷費用位置 = Sheets("temp").Range("A:A").Find("*推銷費用*")
                    ' If 推銷費用位置 Is Nothing Then
                    '     推銷費用 = 0
                    ' Else
                    '     推銷費用 = 推銷費用位置.Offset(0, 1).Value
                    ' End If
            
                    .Cells(Write_Col, 2) = J
                    .Cells(Write_Col, 3) = .Cells(Worksheets("temp").Range("A:A").Find("   營業收入合計").Row, Read_Col)
               
                    J = 1 '已有最近季報 , 所以結束不再 Update
               End With
                                                         
            End If
               
            Next
    Next

目前資料轉寫如上 ,
年度資料執行上沒有錯 , 由資料最近年度至系統年度來執行 ,
而季報資料則由 4 -> 1 , 但卻出現
1) 它一次跳兩季 , 只有 4 , 2 資料 , 而不是 4 , 3 , 2 , 1 的順序
2) 網頁Web轉檔時 , 只要 4 , 3 , 2 , 1 下 , 第一個成功的即跳出 , 且資料轉寫 ; 若都不成功時才結束 , 但執行結果都是 4 , 2 , 然後又是 4 , 2 ... , 即使有 Web 轉檔成功但也沒有跳出 ,
這是那邏輯上錯誤 ? 還是語法上錯誤 ??

TOP

回復 22# oliwa


    對不起,offset不是工作表函數,Match才是,我寫錯了:P

TOP

D_Receive = .Cells(D_Row, 2) 用這個取代 offset 那列語法 , 其它的我試試 .....

TOP

回復 20# lpk187


   D_Receive = Application.Offset(A1, D_Row, 2)

  我改成如上 , 但仍出現錯誤 ??

TOP

回復 19# oliwa


    借用工作表函數必須要加上Application.WorksheetFunction或簡寫Application
例如Application.Offset(A1, Application.Match("應收帳款淨額", Range("A2:A2000"), 0), 2)

另外,工作表函數在 Visual Basic 中並不是很好用,用程式碼來表示有時會比工作表函數還要好用的多!

TOP

謝謝 lkp187 的例子 , 我瞭解新增部分的語法了 , 感恩 ....
轉Web資料 , 經由錄製方式後也瞭解及運用 ,
目前讀取資料時 ,
I :
Offset(A1, Match("應收帳款淨額", Range("A2:A2000"), 0), 2)
Offset(A1, Match("應收帳款淨額", "A2:A2000", 0), 2)
Offset(A1, Match("應收帳款淨額", Range("A2:A2000"), 0), 2)
Offset(A1, Match("應收帳款淨額", "$A$2:$A$2000, 0), 2)
以上語法都說錯 , 不知如何修改 ?
不然就是說 Match 沒有定義 ??

II:
看網路介紹 Match 用法時 , 有提到資料要先排序 , 但 Web轉出來的資料 , 沒有排序 , 還有空行 , 也有相關欄位名稱 , 但前面一個四空格 , 另一個五格 ,
這種資料要如何下語法 , 才能正確比對出正確資料後回傳 ?

TOP

        靜思自在 : 君子為目標,小人為目的。
返回列表 上一主題