返回列表 上一主題 發帖

[發問] 請問如何將偶數列的文字轉成數值(已有基本語法 但不會組合)

回復 19# HCG10G8bear
以你的資料特性用特殊儲存格可避免迴圈
  1. Sub ex()
  2. With Sheets("Sheet1")
  3. .Columns("B:B").SpecialCells(xlCellTypeConstants, 1).EntireRow.NumberFormat = "#"  '改變儲存格格式
  4.    With .UsedRange
  5.    .Value = .Value  '重新填入資料
  6.    End With
  7. End With
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 HCG10G8bear 於 2013-11-8 13:37 編輯

回復 20# owen06

範例檔.zip (14.19 KB)
owen06大

附檔都是公司所查詢的庫存

由公司系統轉成Excel時 各尺寸的數字為文字檔 無法加總

所以發帖詢問要如何將特定的偶數列儲存格轉換成數值

目前執行狀況是不會出現執行階段錯誤

但是執行後也沒有將各尺寸的數字(文字)轉成可計算的數值







不好意思 一直麻煩您

謝謝您

[attach]16637[/attach]

TOP

回復 21# Hsieh


超級版主您好

您的程式碼有用 可以正常執行

不過我看不太懂這個地方

Columns("B:B").SpecialCells(xlCellTypeConstants, 1)

可否麻煩您釋疑解惑

謝謝您

TOP

本帖最後由 GBKEE 於 2013-11-8 13:59 編輯

回復 1# HCG10G8bear
這語法錯誤 Range("2:2,4:4,6:6').NumberFormatLocal = "G/通用格式"
  1. Range("2:2,4:4,6:6").NumberFormatLocal = "G/通用格式"
複製代碼
回復 17# HCG10G8bear
UsedRange是工作表的物件(工作表中已使用的範圍)
工作表模組中使用UsedRange就是指這工作表的UsedRange (但可如:Sheet1模組中輸寫, Sheet2.UsedRange)
在一般模組中(非工作表模組)沒有指明UsedRange的父層(工作表),電腦很笨不會看穿使用者的心思,就說找不到物件
回復 22# HCG10G8bear
PERSONAL模組中程式碼可修改如下
  1. For I = 2 To ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count Step 2
複製代碼
回復 23# HCG10G8bear

SpecialCells方法 本討論區有多篇的討論,也可詳看VBA說明
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 22# HCG10G8bear


在看了你之前附的圖之後,我想應該找出原因了,
你似乎是有另外用有一個叫personal的excel檔來儲存模組,
然後再開其他excel檔來執行personal裡模組的程式,
而我寫的時候單純的是以在同一個檔案底下的方式來寫的,
並沒有注意到這個狀況,所以才會造成這些問題。

TOP

回復 24# GBKEE


   順便藉這個問題請教一下版主,為什麼這個case,
   我直接寫sheet1,就不能在其他檔案底下執行,
   但如果改成都sheets("sheet1"),就可以通用了,
   請問這是什麼原因呢?煩請賜教,謝謝~

TOP

本帖最後由 GBKEE 於 2013-11-8 15:48 編輯

回復 26# owen06
直接寫sheet1,就不能在其他檔案底下執行,因sheet1指這檔案的工作表模組名稱,雖然其他檔案也有sheet1的工作表模組名稱,
這檔案的程式碼中無法引用其他檔案的物件,
須如此
  1. ActiveWorkbook.Sheets ("sheet1") '名稱
  2.     ActiveWorkbook.Sheets (1)        '索引值
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 欣賞別人就是莊嚴自己。
返回列表 上一主題