返回列表 上一主題 發帖

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

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

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






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

回復 14# n7822123


    好的,謝謝大大的指導,感恩。

TOP

本帖最後由 n7822123 於 2019-6-7 14:47 編輯

回復 13# jeffrey628litw


因為你是錄製的程式,很懶得看是哪一列程式改變了你的格式

錄製巨集的時候,盡量要小心,貼上可以用  選擇性貼上>值

就可以避免複製到儲存格格式,當然 學會VBA 是更好的選擇 :)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 12# 准提部林


    版主准大您好:經過測試已經可以使用,原來我不應該將    Range("F:F").NumberFormatLocal = "@"   加到錄製巨集後,
  
                                在修改儲存格格式,而是要在一開始就修改,感謝您的指導,也謝謝其他先進的指導。

TOP

回復 11# jeffrey628litw


    Sheets("比對OE No後資料").UsedRange.Clear  'Clear會使儲存格恢復為[通用]格式
    Sheets("比對OE No後資料").Range("F:F").NumberFormatLocal = "@"  '加入這一行, 設為[文字]格式
    Sheets("比對OE No後資料").[a1].Resize(UBound(Ax, 1), UBound(Ax(1))) = Application.Transpose(Application.Transpose(Ax))

TOP

回復 10# n7822123


    n7822123  大您好:

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

TOP

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

回復 9# jeffrey628litw


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

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

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

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

TOP

回復 8# mistery


    Selection.NumberFormatLocal = " @ "

    或以下

    Selection.NumberFormatLocal = Chr(64)


    這2個都試過不行!!

TOP

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

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

TOP

回復 6# 准提部林


    版主准大您好:

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

    不好意思,一直麻煩您。



圖片3.jpg

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題