- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,952
Tôi có đoạn code này:
Có cả file đính kèm nữa, xin mời xem qua!
Ở đây tôi chỉ có 1 thắc mắc nhỏ về biến i trong đoạn code trên
Xem code ta thấy rằng biến i chính là độ dài của chuổi trong 1 cell, vậy đương nhiên nó không vượt quá 256 ký tự... Từ suy luận trên tôi Dim i As Byte thấy vừa đủ không thừa không thiếu... Ấy thế mà nó lại báo lổi, trong khi nếu Dim i As Integer thì không có vấn đề
Còn nữa: Nếu vẩn Dim i As Byte và sửa đoạn For i = Len(Clls) To 1 Step -1 thành For i = 1 To Len(Clls) thì hết lổi
Xin vui lòng giãi thích tại sao Dim i As Byte trong code này lại không thể làm việc được với vòng lập quét ngược
Mặc dù sửa lại Dim i As Integer thì code chạy bình thường nhưng tôi cãm thấy ngứa mắt quá ---> Muốn tìm hiểu vấn đề TẠI SAO ở đây! Xin các cao thủ chỉ giáo!
Cãm ơn!
PHP:
Option Explicit
Sub Tach()
Dim Rng As Range, Clls As Range
Dim i As Integer
Dim iText As String
Application.ScreenUpdating = False
[A1].CurrentRegion.Copy Destination:=[C1]
Set Rng = Range("C2:C" & [C1000].End(xlUp).Row)
Rng.TextToColumns Destination:=[C2], DataType:=xlDelimited, Other:=True, OtherChar:="|"
[C1].ClearContents
For Each Clls In [C2].CurrentRegion
For i = Len(Clls) To 1 Step -1
iText = Mid(Clls, i, 1)
If IsNumeric(iText) = False And iText <> "." Then
With Clls
.Value = Replace(.Value, iText, "")
.NumberFormat = "0.00"
End With
End If
Next i
Next Clls
Application.ScreenUpdating = True
End Sub
Ở đây tôi chỉ có 1 thắc mắc nhỏ về biến i trong đoạn code trên
Xem code ta thấy rằng biến i chính là độ dài của chuổi trong 1 cell, vậy đương nhiên nó không vượt quá 256 ký tự... Từ suy luận trên tôi Dim i As Byte thấy vừa đủ không thừa không thiếu... Ấy thế mà nó lại báo lổi, trong khi nếu Dim i As Integer thì không có vấn đề
Còn nữa: Nếu vẩn Dim i As Byte và sửa đoạn For i = Len(Clls) To 1 Step -1 thành For i = 1 To Len(Clls) thì hết lổi
Xin vui lòng giãi thích tại sao Dim i As Byte trong code này lại không thể làm việc được với vòng lập quét ngược
Mặc dù sửa lại Dim i As Integer thì code chạy bình thường nhưng tôi cãm thấy ngứa mắt quá ---> Muốn tìm hiểu vấn đề TẠI SAO ở đây! Xin các cao thủ chỉ giáo!
Cãm ơn!