Chạy macro và Book1 có liên quan đến nhau?

Liên hệ QC

nokiano258vn

Thành viên lười biếng
Tham gia
28/8/07
Bài viết
268
Được thích
276
Nghề nghiệp
Bồi thường giải phóng mặt bằng
Có phải để chạy macro thì trong C:\Documents and Settings\NOKIANO.258\Application Data\Microsoft\Excel\XLSTART luôn phải có Book1
 
Book1 ko liên quan chi đến macro cả... Nếu bạn tạo 1 file nào đó (ko cần tên book1) và lưu vào thư mục XLSTART thì mỗi lần khởi động Excel, nó sẽ luôn luôn mở file này... Đây cũng là 1 lổ hổng và virus chuyên khai thác... Nó sẽ tạo 1 file có chứa code độc hại và lưu vào thư mục XLSTART này nên mỗi lần mở file nào thì xem như file đó bị nhiểm...
Cẩn thận khi thư mục này tồn tại file Book1 nhé! Tốt nhất nên xoá nó đi!
ANH TUẤN
 
Sửa code

Tôi load được đoạn code
Function Text2Func(myCell As Range) As Variant
Dim strTemp As String
strTemp = Replace(myCell.Text, "x", "*")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, " ", "")
Text2Func = Evaluate(strTemp)
End Function
Tôi thêm
strTemp = Replace(myCell.Text, "m", "") hoặc strTemp = Replace(myCell.Text, "bộ", "") thì nó chẳng chạy gì cả, chỉ cho tôi cách khắc phục.
 
Nếu tôi để dòng: strTemp = Replace(myCell.Text, "m", "") thì phải bỏ dòng: strTemp = Replace(myCell.Text, "x", "*") thì nó mới chạy và tại sao nó không nhận được chữ “bộ”?
Function Evalu(myCell As Range) As Variant
Dim strTemp As String
strTemp = Replace(myCell.Text, "x", "*")
strTemp = Replace(myCell.Text, "m", "")
strTemp = Replace(myCell.Text, "bộ", "")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, "{", "(")
strTemp = Replace(strTemp, "}", ")")
strTemp = Replace(strTemp, "[", "(")
strTemp = Replace(strTemp, "]", ")")
strTemp = Replace(strTemp, ",", ".")
Evalu = Evaluate(strTemp)
End Function
Nếu code như này thì sai ở đâu vì tôi phải thực hiện: (1m+2,5m) x 3bộ
 
Mấu chốt là ở chổ bạn đang gõ tiếng Việt Font Unicode... Bạn phải gõ tiếng Việt bằng FontABC thì nó mới chạy chứ ko phải do vấn đề thay cái này thành cái nọ
Code của bạn có sai sót mấy chổ... Toàn bộ nội dung code phải như vầy mới đúng nè...
Function Text2Func(myCell As Range) As Variant
Dim strTemp As String
strTemp = Replace(myCell.Text, "x", "*")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, "m", "")
strTemp = Replace(strTemp, "c¸i", "")
strTemp = Replace(strTemp, "bé", "")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, "{", "(")
strTemp = Replace(strTemp, "}", ")")
strTemp = Replace(strTemp, "[", "(")
strTemp = Replace(strTemp, "]", ")")
strTemp = Replace(strTemp, ",", ".")
Text2Func = Evaluate(strTemp)
End Function
Chú ý: Có khi bạn phải save file rồi mở lại lần nữa thì mới thấy kết quả đúng (vấn đề này thì tôi chưa hiểu lý do)
ANH TUẤN
 
Lần chỉnh sửa cuối:
Chài, bác post câu hỏi 2 nơi! Bác dùng đoạn code sau:

Function ValueEval(rng As Range)
Dim i As Integer
Dim strTemp As String
For i = 1 To Len(rng)
Select Case Asc(Mid(rng.Value, i, 1))
Case 40 To 45, 47 To 58, 91, 93, 120, 123, 125
ValueEval = ValueEval & Mid(rng.Value, i, 1)
End Select
Next i

strTemp = Replace(ValueEval, "x", "*")
strTemp = Replace(strTemp, ":", "/")
strTemp = Replace(strTemp, "{", "(")
strTemp = Replace(strTemp, "}", ")")
strTemp = Replace(strTemp, "[", "(")
strTemp = Replace(strTemp, "]", ")")
strTemp = Replace(strTemp, ",", ".")

ValueEval = Evaluate(strTemp)

End Function

TP.
 

File đính kèm

  • Value2Func.xls
    37 KB · Đọc: 23
Đoạn code của bác thật là lợi hại, cho em hỏi thêm mấy số Select Case Asc(Mid(rng.Value, i, 1))
Case 40 To 45, 47 To 58, 91, 93, 120, 123, 125 nghĩa của nó là gì
 
Web KT
Back
Top Bottom