返回列表 上一主題 發帖

5457001E01,這在用VBA自動比對條件撈出值後變成546E+07,這VBA要如何修正呢?

5457001E01,這在用VBA自動比對條件撈出值後變成546E+07,這VBA要如何修正呢?

5457001E01,這在用VBA自動比對條件撈出值後變成546E+07,這VBA要如何修正才能自動撈出正確的值呢?






產品查詢系統nv.3.0.rar (75.88 KB)

回復 2# s13030029


    我格式自己改這樣這一筆抓的到,但其他的就不確定了

Moule5 裡面加入這些

'以下為將OE No E+格式改成E
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 16
    ActiveWindow.ScrollRow = 18
    ActiveWindow.ScrollRow = 21
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 29
    ActiveWindow.ScrollRow = 32
    ActiveWindow.ScrollRow = 36
    ActiveWindow.ScrollRow = 40
    ActiveWindow.ScrollRow = 45
    ActiveWindow.ScrollRow = 50
    ActiveWindow.ScrollRow = 54
    ActiveWindow.ScrollRow = 59
    ActiveWindow.ScrollRow = 64
    ActiveWindow.ScrollRow = 68
    ActiveWindow.ScrollRow = 72
    ActiveWindow.ScrollRow = 75
    ActiveWindow.ScrollRow = 78
    ActiveWindow.ScrollRow = 81
    ActiveWindow.ScrollRow = 85
    ActiveWindow.ScrollRow = 87
    ActiveWindow.ScrollRow = 89
    ActiveWindow.ScrollRow = 92
    ActiveWindow.ScrollRow = 94
    ActiveWindow.ScrollRow = 97
    ActiveWindow.ScrollRow = 99
    ActiveWindow.ScrollRow = 102
    ActiveWindow.ScrollRow = 104
    ActiveWindow.ScrollRow = 107
    ActiveWindow.ScrollRow = 110
    ActiveWindow.ScrollRow = 113
    ActiveWindow.ScrollRow = 116
    ActiveWindow.ScrollRow = 118
    ActiveWindow.ScrollRow = 120
    ActiveWindow.ScrollRow = 122
    ActiveWindow.ScrollRow = 123
    ActiveWindow.ScrollRow = 124
    ActiveWindow.ScrollRow = 125
    ActiveWindow.ScrollRow = 126
    ActiveWindow.ScrollRow = 127
    ActiveWindow.ScrollRow = 128
    ActiveWindow.ScrollRow = 129
    ActiveWindow.ScrollRow = 130
    ActiveWindow.ScrollRow = 131
    ActiveWindow.ScrollRow = 132
    ActiveWindow.ScrollRow = 133
    ActiveWindow.ScrollRow = 134
    Range("F2:F151").Select
    ActiveWindow.ScrollRow = 133
    ActiveWindow.ScrollRow = 132
    ActiveWindow.ScrollRow = 130
    ActiveWindow.ScrollRow = 129
    ActiveWindow.ScrollRow = 126
    ActiveWindow.ScrollRow = 121
    ActiveWindow.ScrollRow = 117
    ActiveWindow.ScrollRow = 112
    ActiveWindow.ScrollRow = 108
    ActiveWindow.ScrollRow = 102
    ActiveWindow.ScrollRow = 94
    ActiveWindow.ScrollRow = 86
    ActiveWindow.ScrollRow = 80
    ActiveWindow.ScrollRow = 74
    ActiveWindow.ScrollRow = 69
    ActiveWindow.ScrollRow = 65
    ActiveWindow.ScrollRow = 61
    ActiveWindow.ScrollRow = 57
    ActiveWindow.ScrollRow = 53
    ActiveWindow.ScrollRow = 48
    ActiveWindow.ScrollRow = 45
    ActiveWindow.ScrollRow = 41
    ActiveWindow.ScrollRow = 37
    ActiveWindow.ScrollRow = 34
    ActiveWindow.ScrollRow = 30
    ActiveWindow.ScrollRow = 27
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 20
    ActiveWindow.ScrollRow = 17
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 7
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 1
    Range("F2:F151,O2").Select
    Range("O2").Activate
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 7
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 11
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 17
    ActiveWindow.ScrollRow = 20
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 28
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 34
    ActiveWindow.ScrollRow = 36
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 46
    ActiveWindow.ScrollRow = 50
    ActiveWindow.ScrollRow = 55
    ActiveWindow.ScrollRow = 60
    ActiveWindow.ScrollRow = 66
    ActiveWindow.ScrollRow = 72
    ActiveWindow.ScrollRow = 76
    ActiveWindow.ScrollRow = 80
    ActiveWindow.ScrollRow = 84
    ActiveWindow.ScrollRow = 87
    ActiveWindow.ScrollRow = 89
    ActiveWindow.ScrollRow = 91
    ActiveWindow.ScrollRow = 93
    ActiveWindow.ScrollRow = 95
    ActiveWindow.ScrollRow = 97
    ActiveWindow.ScrollRow = 99
    ActiveWindow.ScrollRow = 102
    ActiveWindow.ScrollRow = 104
    ActiveWindow.ScrollRow = 107
    ActiveWindow.ScrollRow = 109
    ActiveWindow.ScrollRow = 112
    ActiveWindow.ScrollRow = 114
    ActiveWindow.ScrollRow = 117
    ActiveWindow.ScrollRow = 120
    ActiveWindow.ScrollRow = 121
    ActiveWindow.ScrollRow = 124
    ActiveWindow.ScrollRow = 126
    ActiveWindow.ScrollRow = 127
    ActiveWindow.ScrollRow = 129
    ActiveWindow.ScrollRow = 131
    ActiveWindow.ScrollRow = 133
    ActiveWindow.ScrollRow = 134
    Range("F2:F151,O2:O151").Select
    Range("O2").Activate
   
     Selection.NumberFormatLocal = "0??0#!E01"                     '這一行可以讓E抓的到

TOP

將F欄設為[文字]格式, 重新輸入5457001E01

TOP

回復 4# 准提部林


    准大阪主您好:

            我剛剛有照您說的試過,但仍然不行,比對後結果為 5.46E+07 ,但儲存格實際是5470010,就覺得很奇怪。

   我也不確定是不是版本的問題,我是Excel 2007年版。

         另外這種裡面都是數字只有一碼是E放在倒數第3或4碼好像就會有這種問題。


還是可以請問為什麼這個檔案撈出的結果就可以產生正確的結果呢?
如果要改VBA 程式碼,要如何改到1F的檔案中呢?
煩請不吝賜教,謝謝。






VBA 輸入完整字串+數字撈出資料庫資料.rar (16.71 KB)

TOP

MsgBox [Sheet1!B18] & "   " & [Sheet2!B9]
兩個一樣的,

撈資料前, 要先將儲存格設為文字格式~~

TOP

回復 6# 准提部林


    版主准大您好:

    我有照您說的試過,但仍然不行,比對後結果為 5.46E+07 (如圖1) ,但儲存格實際是5470010 (如圖2)(這是轉換為文字後就變成這樣少了E後面幾碼)

    不好意思,一直麻煩您。



圖片3.jpg

TOP

本帖最後由 mistery 於 2019-6-6 18:52 編輯

設定該選取範圍為文字格式 --> Selection.NumberFormatLocal =@
或是取值當下就給予 文字格式 --> Cstr (取回的值 )

TOP

回復 8# mistery


    Selection.NumberFormatLocal = " @ "

    或以下

    Selection.NumberFormatLocal = Chr(64)


    這2個都試過不行!!

TOP

本帖最後由 n7822123 於 2019-6-6 22:40 編輯

回復 9# jeffrey628litw


我在你的程式最下面,倒數第2列加入以下程式,問題就解決了!

Columns("F:F").NumberFormatLocal = "@"

在執行中你的程式有一段程式是做貼上的動作,應該有貼到別格的格式,
所以執行過程中,才會變成科學記號,只要最後換成文字就可以了!

產品查詢系統nv.3.0.rar (73.86 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 10# n7822123


    n7822123  大您好:

      這部分有解決  格式的問題,不過出來的結果仍然不正確,5457001E01  仍然會變成剩下  54571010。

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題