Board logo

標題: transfer string to number(小問題請教) [打印本頁]

作者: jj369963    時間: 2013-10-20 19:27     標題: transfer string to number(小問題請教)

本帖最後由 jj369963 於 2013-10-20 19:29 編輯

Dear 各位大大與前輩們:

如附檔,想將D欄到CO欄位轉成數字格式,目前用以下代碼試過成功,but 是要一個一個寫到CO欄嗎?
請問是否有其他方式?發問是進步的原動力,再煩請各位先輩指教,感謝
  1. Sub transfer()
  2. Dim RngHead As Range, DataCunt As Long, i As Long
  3. Set RngHead = Range("A2")
  4. DataCunt = Range("A65536").End(xlUp).Row
  5. Application.ScreenUpdating = False
  6. For i = RngHead.Row To DataCunt
  7.     If Val(Range("A" & i).Value) <> 0 Then
  8.    Range("A" & i).NumberFormatLocal = "G/通用格式"
  9.    Range("A" & i).Value = Val(Range("A" & i).Value)
  10.     End If
  11.     If Val(Range("F" & i).Value) <> 0 Then
  12.    Range("F" & i).NumberFormatLocal = "G/通用格式"
  13.    Range("F" & i).Value = Val(Range("F" & i).Value)
  14.     End If
  15.     If Val(Range("G" & i).Value) <> 0 Then
  16.    Range("G" & i).NumberFormatLocal = "G/通用格式"
  17.    Range("G" & i).Value = Val(Range("G" & i).Value)
  18.     End If
  19.     If Val(Range("H" & i).Value) <> 0 Then
  20.    Range("H" & i).NumberFormatLocal = "G/通用格式"
  21.    Range("H" & i).Value = Val(Range("G" & i).Value)
  22.     End If
  23.     If Val(Range("I" & i).Value) <> 0 Then
  24.    Range("I" & i).NumberFormatLocal = "G/通用格式"
  25.    Range("I" & i).Value = Val(Range("G" & i).Value)
  26.     End If
  27.     If Val(Range("J" & i).Value) <> 0 Then
  28.    Range("J" & i).NumberFormatLocal = "G/通用格式"
  29.    Range("J" & i).Value = Val(Range("G" & i).Value)
  30.     End If
  31. Next i
  32. End Sub
複製代碼
[attach]16395[/attach]
作者: luhpro    時間: 2013-10-20 20:51

Dear 各位大大與前輩們:

如附檔,想將D欄到CO欄位轉成數字格式,目前用以下代碼試過成功,but 是要一個 ...
jj369963 發表於 2013-10-20 19:27

關鍵是善用 Union 與 For Each 函數 :
  1. Sub tf()
  2.   Dim rTar As Range, RngHead As Range
  3.   Dim DataCunt As Long
  4.   Dim vTar
  5.   
  6.   Set RngHead = Range("A2")
  7.   DataCunt = Range("A65536").End(xlUp).Row
  8.   Set rTar = Union(Range(RngHead.Address & ":A" & DataCunt), Range("F" & RngHead.Row & ":J" & DataCunt))
  9.   For Each vTar In rTar
  10.     With vTar
  11.       If .Value <> 0 Then
  12.        .NumberFormatLocal = "G/通用格式"
  13.        .Value = Val(.Value)
  14.       End If
  15.     End With
  16.   Next vTar
  17. End Sub
複製代碼
[attach]16397[/attach]




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