Board logo

標題: [發問] 儲存格出現格式為文字或開頭為單引號的錯誤 [打印本頁]

作者: 198188    時間: 2013-1-9 21:59     標題: 儲存格出現格式為文字或開頭為單引號的錯誤

[attach]13860[/attach]
請問為什麼這個excel 儲存格會出現錯誤?它意思說格式為文字或開頭為單引號,為什麼會這樣?有什麼解決方法,讓以後不出現這個問題?
作者: Hsieh    時間: 2013-1-9 22:40

回復 1# 198188

資料剖析
[attach]13863[/attach]
作者: 198188    時間: 2013-1-9 23:50

回復 2# Hsieh


   請問是什麼原因導致這樣的?有什麼方法可以避免?因為這種情況經常發生。改完了,又出現。
作者: Hsieh    時間: 2013-1-9 23:56

回復 3# 198188
這類問題常是由其他軟體轉入或是網頁複製貼上
若是上述情況可能只有藉由資料剖析來修正
還有一種可能是你的工作表儲存格樣式的數値格式設定成文字,所以輸入數字也會被存成文字
作者: 198188    時間: 2013-1-13 22:59

回復 4# Hsieh


    請問:
如果一個excel堶惇O純文件沒有任何程式,那麼會不會有幾MB?
另外vba如果每次運行後,會否加大excel的容量?
作者: Hsieh    時間: 2013-1-14 08:46

回復 5# 198188
http://forum.twbts.com/thread-4577-1-2.html
造成檔案虛胖的原因太多了
任何一個操作都會被記錄下來
VBA對檔案資料的操作必須盡可能只對最小資料範圍做操作
作者: 198188    時間: 2013-1-14 09:04

回復 6# Hsieh

那麼請問有沒有辦法還原或縮小容量,因為我原本的檔案不夠1MB,運行了vba容量竟然變成8-10MB,之後試過改動少許程式,然後容量就變成25MB.
另外如果只有文字無任何程式,內容只有文件沒有其他,純碎data entry 但為何會有可以去到幾MB?有方法解救嗎?
另外我想問為何每次打excel都會自動將儲存格的格式由數值變成日期?有沒有辦法解決?
作者: 198188    時間: 2013-1-23 14:46

回復 6# Hsieh

請問在excel 2010 版
可否設定條件
A column 內包含有“PMI”, B column 就會變底色?
作者: 198188    時間: 2013-2-8 09:56

回復 6# Hsieh


    請問

A1儲存格是1000
B1儲存格是20% deposit

如果我想C1儲存格出現200
1000 x 20% = 200
Worksheets(customer).range("C1").Value = Worksheets(customer).range("A1") x Left((Worksheets("Oracle").Range("B1").Value), 3)
Worksheets(customer).range("C1").Value = Worksheets(customer).range("A1") * Left((Worksheets("Oracle").Range("B1").Value), 3)

我以上兩個寫法都不行,請問應該如何表達?
作者: Hsieh    時間: 2013-2-8 10:33

回復 9# 198188
A1是數值絕對沒問題
B1是文字,那就要看文字是否有規則
都是2位數加%嗎?
有可能5%或100%這樣非2位數嗎?
是否與deposit之間都有空格?
若以你的例子使用LEFT取3個字元
%符號還是會將LEFT取出的20%視為文字
而產生型態不符
可利用Evaluate函數轉成計算式
  1. Sub ex()
  2. [C1] = Evaluate([A1] & "*" & Left([B1], 3))
  3. End Sub
複製代碼
[attach]14157[/attach]
作者: 198188    時間: 2013-2-8 10:43

回復 10# Hsieh

我剛才用這樣就可以了,我想是Left((Worksheets("Oracle").Cells(1, 2).Value), 3) 電腦不認得是數值

    Worksheets(customer).Cells(2, 3).Value = Left((Worksheets("Oracle").Cells(1, 2).Value), 3)
  Worksheets(customer).Cells(1, 3).Value = Worksheets("Oracle").Cells(1,1).Value * Worksheets(customer).Cells(2, 3).Value

另外我想問
A1儲存格內是:CCLU8596520/J624353/001128
我想B1儲存格內顯示CCLU8596520
因為/前面不一定是11個位,我如何讓電腦懂得辨認讀取第一個/符號前的數值,顯示在B1儲存格內?
作者: Hsieh    時間: 2013-2-8 17:44

回復 11# 198188


    [B1]=Split([A1],"/")(0)
作者: 198188    時間: 2013-2-9 10:27

回復 12# Hsieh


    感謝,請問可否解釋一下用法,那我以後就可以懂得如何運用這個語法。
作者: 198188    時間: 2013-2-9 12:18

  1. Sub MARCO()
  2. Worksheets(RUI).Range("A16:N66").Select
  3. Selection.Sort Key1:=Range("D16"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlStroke, DataOption1:=xlSortNormal

  4. End Sub
複製代碼
[attach]14161[/attach]



請問這個語法哪裡出現問題?我想以D欄的预计到港日由小到大排序,排序範圍是A16:N66
作者: 198188    時間: 2013-3-8 22:27

回復 12# Hsieh

高人,請幫忙看看哪裡出現問題
    http://forum.twbts.com/viewthrea ... amp;page=2#pid51110
作者: 198188    時間: 2013-4-16 17:56

回復 12# Hsieh


    如果並非每個儲存格都有/這個符號
請問如何讓電腦辨認,因為如果我用這個公式,當遇到無/這個符號的那欄就會停住。

例如:
資料庫:
HONGKONG, DO DELIVERY 香港, 交提貨單
HONG KONG / 香港
YANTIAN,CHINA/盐田
XINGANG,TIANJIN,CHINA/天津新港
SHANGHAI-CHINA/上海
XINGANG,TIANJIN,CHINA-天津新港

如何辨認中文及英文,
1)只顯示中文
香港, 交提貨單
香港
盐田
天津新港
上海
天津新港

或者
2)只顯示英文       
HONGKONG, DO DELIVERY
HONG KONG
YANTIAN,CHINA
XINGANG,TIANJIN,CHINA
SHANGHAI-CHINA       
XINGANG,TIANJIN,CHINA
作者: Hsieh    時間: 2013-4-16 19:32

回復 16# 198188
  1. For Each a In Range([A1], [A1].End(xlDown)) '處理A欄文字
  2. d = IIf(InStr(a, "/") > 0, "/", IIf(InStr(a, " ") > 0, " ", "-")) '取得分隔符號
  3. b = IIf(InStr(a, ", ") > 0, Replace(a, ", ", ","), a) '若以空白鍵為分隔,則將逗號後的空白消除
  4. mystr = Split(b, d)(UBound(Split(b, d))) '以分隔符號分隔後最後的字串
  5. a.Offset(, 1) = Trim(Replace(b, d & mystr, "")) '寫入B欄
  6. a.Offset(, 2) = Trim(mystr) '寫入C欄
  7. Next
複製代碼

作者: 198188    時間: 2013-4-17 11:04

[/code][b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=52598&ptid=8765]17#[/url] [i]Hsieh[/i] [/b]

[attach]14686[/attach][attach]14687[/attach]
[code]Sub Detail()
Dim FRng As Range
Dim a As Range, Rng As Range
Dim i As Integer
Dim LastRec As Integer
Dim Sh As Worksheet, C As Range, Ar()
  
fs = "C:\Users\patrick.HKG\Desktop\DOCS RECEIVED N RELEASED RECORD.xlsx" '揃蹋
作者: 198188    時間: 2013-4-17 11:07

本帖最後由 198188 於 2013-4-17 11:09 編輯
  1. Sub Detail()
  2. Dim FRng As Range
  3. Dim a As Range, Rng As Range
  4. Dim i As Integer
  5. Dim LastRec As Integer
  6. Dim Sh As Worksheet, C As Range, Ar()
  7.     fs = "C:\Users\patrick.HKG\Desktop\DOCS RECEIVED N RELEASED RECORD.xlsx"
  8. With Workbooks.Open(fs)
  9.    Set Sh = .Sheets("收件記錄")
  10.        With ThisWorkbook.Sheets("OHC")
  11.           For Each a In .Range(.[C2], .Cells(.Rows.Count, 1).End(xlUp))
  12.              Set Rng = Sh.Columns("D").Find(a, lookat:=xlWhole)
  13.              If Not Rng Is Nothing Then
  14.                 For Each C In Sh.Range(Rng, Sh.Cells(Sh.Rows.Count, 4).End(xlUp))
  15.                    If C = a And InStr(UCase(C.Offset(, 4).MergeArea(1)), "OHC") > 0 Then
  16.                       ReDim Preserve Ar(s)
  17.                       Ar(s) = C.Offset(, 4).MergeArea(1)
  18.                       s = s + 1
  19.                    End If
  20.                  Next
  21.              If s > 0 Then
  22.                a.Offset(, 9) = Join(Ar, "﹜")
  23.                 Erase Ar
  24.                 s = 0
  25.                   Else
  26.                a.Offset(, 9) = ""
  27.              End If
  28.              End If
  29.           Next
  30.        End With
  31.   .Close
  32.   End With
  33.    End Sub
複製代碼
[/code][quote][/code]回復  Hsieh
當要讀的表的D欄是空格,而H欄有OHC這個字,就會出現附圖的問題
作者: 198188    時間: 2013-4-17 11:27

[attach]14688[/attach]回復 17# Hsieh


NANSHA-CHINA 中国南沙                                               NANSHA-CHINA                          中国南沙
NANSHA-CHINA 中国南沙                                               NANSHA-CHINA                          中国南沙
NANSHA-CHINA/中国 南沙                                               NANSHA-CHINA                          中国 南沙
NANSHA-CHINA 中国南沙                                               NANSHA-CHINA                          中国南沙
KAOHSIUNG TAIWAN PORT                                               KAOHSIUNG TAIWAN        PORT
OSAKA - JAPAN                                                                  OSAKA -                                              JAPAN
"HONG KONG / 香港 "                                               HONG KONG                          "香港 "
HONG KONG                                                                  HONG                                              KONG
OSAKA - JAPAN                                                                  OSAKA -                                              JAPAN
HONG KONG                                                                  HONG                                              KONG
HONG KONG, CY DELIVERY / 香港, 櫃場交貨        HONG KONG,CY DELIVERY        香港,櫃場交貨
HONG KONG, CY DELIVERY / 香港, 櫃場交貨        HONG KONG,CY DELIVERY        香港,櫃場交貨
HONG KONG, CY DELIVERY / 香港, 櫃場交貨        HONG KONG,CY DELIVERY        香港,櫃場交貨
HONG KONG, CY DELIVERY / 香港, 櫃場交貨        HONG KONG,CY DELIVERY        香港,櫃場交貨
HONG KONG, CY DELIVERY / 香港, 櫃場交貨        HONG KONG,CY DELIVERY        香港,櫃場交貨
NARITA, JAPAN (NRT)                                               NARITA,JAPAN                            (NRT)
感謝,但是有些字不應該拆開卻拆開例如:HONG KONG
作者: 198188    時間: 2013-4-19 11:37

[attach]14708[/attach]
  1.   fs = "W:\Payment Daily Report\HK ETA update.xlsm"
  2. Set wb = Workbooks.Open(fs)
  3. With ThisWorkbook.Worksheets("State")
  4. For Each A In .Range(.[A2], .Range("A1").End(xlDown))
  5.      Set FRng = wb.Sheets("HK HAIPONG").Range("A:A").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
  6.      If Not FRng Is Nothing Then
  7.           A.Offset(, 1) = FRng.Offset(, 11).Value
  8.           If rng Is Nothing Then Set rng = A.Offset(, 1) Else Set rng = Union(rng, A.Offset(, 1))
  9.         End If
  10.         Set FRng = Nothing
  11. Next
  12. End With
  13. wb.Close 0
複製代碼
回復 17# Hsieh
這個程式應該是會自動更新Master.xlsx的B欄資料,但是我發現有些做不了,例如209519 Master.xlsx是22/3,但是HK HAIPONG sheet 是21/3, 不懂得更新,請問哪裡有問題?

另外如果在HK HAIPONG sheet 中找到有,但是Offset(, 11).Value是空格,就不變,我改了這句If Trim(FRng.Offset(, 11).Value) <> "" then  A.Offset(, 1) = FRng.Offset(, 11).Value,但是沒有作用,請問是否有錯?

fs = "W:\Payment Daily Report\HK ETA update.xlsm"
Set wb = Workbooks.Open(fs)
With ThisWorkbook.Worksheets("State")
For Each A In .Range(.[A2], .Range("A1").End(xlDown))
     Set FRng = wb.Sheets("HK HAIPONG").Range("A:A").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
     If Not FRng Is Nothing Then
        If Trim(FRng.Offset(, 11).Value) <> "" then  A.Offset(, 1) = FRng.Offset(, 11).Value
          If rng Is Nothing Then Set rng = A.Offset(, 1) Else Set rng = Union(rng, A.Offset(, 1))
        End If
        Set FRng = Nothing
Next
End With
wb.Close 0
作者: Hsieh    時間: 2013-4-19 15:20

回復 21# 198188

    Set FRng = wb.Sheets("HK HAIPONG").Range("A:A").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
     If Not FRng Is Nothing Then
        If Trim(FRng.Offset(, 11).Value) <> "" then  
             A.Offset(, 1) = FRng.Offset(, 11).Value
             If rng Is Nothing Then Set rng = A.Offset(, 1) Else Set rng = Union(rng, A.Offset(, 1))
       End If
     End If
作者: 198188    時間: 2013-4-19 16:47

回復 22# Hsieh


    這個程式應該是會自動更新Master.xlsx的B欄資料,但是我發現有些做不了,例如209519 Master.xlsx是22/3,但是HK HAIPONG sheet 是21/3, 不懂得更新,請問哪裡有問題?
作者: Hsieh    時間: 2013-4-20 23:10

回復 23# 198188

看你的程式碼似乎是還有另一檔案為執行程式的檔案
但是在程式碼內容卻不是針對Master.xlsx檔案做更新
這樣斷章取義的問題無法解答
作者: 198188    時間: 2013-4-22 10:55

  1. Sub Load_State_Detail()
  2. Dim FRng As Range
  3. Dim A As Range, rng As Range
  4. Dim I As Integer
  5. Dim LastRec As Integer
  6. fs = "W:\Payment Daily Report\HK ETA update.xlsm"
  7. Set wb = Workbooks.Open(fs)
  8. With ThisWorkbook.Worksheets("State")
  9. For Each A In .Range(.[A2], .Range("A1").End(xlDown))
  10.      Set FRng = wb.Sheets("HK HAIPONG").Range("A:A").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
  11.      If Not FRng Is Nothing Then
  12.      If Trim(FRng.Offset(, 11).Value) <> "" Then
  13.           A.Offset(, 1) = FRng.Offset(, 11).Value
  14.           If rng Is Nothing Then Set rng = A.Offset(, 1) Else Set rng = Union(rng, A.Offset(, 1))
  15.         End If
  16.         End If
  17.         Set FRng = Nothing
  18. Next
  19. End With
  20. wb.Close 0

  21.   fs = "W:\Payment Daily Report\Mainland ETA Update.xlsm"
  22. Set wb = Workbooks.Open(fs)
  23. With ThisWorkbook.Worksheets("State")
  24. For Each A In .Range(.[A2], .Range("A1").End(xlDown))
  25.      Set FRng = wb.Sheets("MAILAND ETA").Range("A:A").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
  26.       If Not FRng Is Nothing Then
  27.        If Trim(FRng.Offset(, 11).Value) <> "" Then
  28.      A.Offset(, 1) = FRng.Offset(, 11).Value
  29.      
  30.            If rng Is Nothing Then Set rng = A.Offset(, 1) Else Set rng = Union(rng, A.Offset(, 1))
  31.         End If
  32.         End If
  33.        Set FRng = Nothing
  34. Next
  35. End With
  36. wb.Close 0
  37. end sub
複製代碼
回復 24# Hsieh

With ThisWorkbook.Worksheets("State") 這句是不是指示了Master.xlsm內的State Sheet嗎?
作者: Hsieh    時間: 2013-4-22 11:05

回復 25# 198188

ThisWorkbook是指程式碼所在的活頁簿
作者: 198188    時間: 2013-4-22 11:21

本帖最後由 198188 於 2013-4-22 11:23 編輯

[attach]14741[/attach]b]回復 26# Hsieh


    是呀,我程式是放在MASTER.XLSM內,因為我怕放程式會導致EXCEL太大,無法上載,所以才分出來上載
作者: 198188    時間: 2013-4-22 11:32

回復  198188
Hsieh 發表於 2013-4-16 19:32



    另外可否幫我看看第18,19的貼文?
第18篇是問題,第19篇是程式。為何資料庫有空格時,會變成這樣,位置不對
作者: 198188    時間: 2013-4-29 12:49

[/code]回復  Hsieh


[code]Sub Detail()
Dim FRng As Range
Dim a As Range, Rng As Range
Dim ...
198188 發表於 2013-4-17 11:04


另外可否幫我看看第18,19的貼文?
第18篇是問題,第19篇是程式。為何資料庫有空格時,會變成這樣,位置不對
請問有方法解決這個問題嗎?
作者: black_kuo    時間: 2013-7-26 10:14

我也好想知道為什麼,可是我現在還不能下載@@




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