Replace 1 số thành số khác trong mảng (1 người xem)

Người dùng đang xem chủ đề này

katylove83

Thành viên hoạt động
Tham gia
22/2/13
Bài viết
166
Được thích
9
chào các anh
e có bài này không biết viết code vba thế nào
tại cột d có nhưng ô có số là 5000 và 4000 em muốn nếu tại cột d có số 5000 thì chuyển thành 6000 nếu là 4000 thì chuyển thành 7000 còn những số khác vẫn giữ nguyên

xem file đính kèm

cám ơn
 

File đính kèm

Lần chỉnh sửa cuối:
chào các anh
e có bài này không biết viết code vba thế nào
tại cột d có nhưng ô có số là 5000 và 4000 em muốn nếu tại cột d có số 5000 thì chuyển thành 6000 nếu là 4000 thì chuyển thành 7000 còn những số khác vẫn giữ nguyên

xem file đính kèm

cám ơn

Bấm Ctrl + H rồi cứ thế mà Replace thôi
 
Upvote 0
chào các anh
e có bài này không biết viết code vba thế nào
tại cột d có nhưng ô có số là 5000 và 4000 em muốn nếu tại cột d có số 5000 thì chuyển thành 6000 nếu là 4000 thì chuyển thành 7000 còn những số khác vẫn giữ nguyên

xem file đính kèm

cám ơn

Nếu viết code VBA thì thế này
PHP:
Sub abc()
   [D:D].Replace "5000", "6000"
   [D:D].Replace "4000", "7000"
End Sub
 
Upvote 0
Nếu viết code VBA thì thế này
PHP:
Sub abc()
   [D:D].Replace "5000", "6000"
   [D:D].Replace "4000", "7000"
End Sub
cám ơn sao đơn giản vậy mà e ko nghĩ ra
tuy nhiên e có thêm 1 điều kiện nữa , nếu cột c là 5000 và đồng thời cột d cũng là 5000 thì thì replace cột c thành 6000 các dòng khác vẫn giữ nguyên.
nhờ anh xem giúp trường hợp này nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
cám ơn sao đơn giản vậy mà e ko nghĩ ra
tuy nhiên e có thêm 1 điều kiện nữa , nếu cột c là 5000 và đồng thời cột d cũng là 5000 thì thì replace cột c thành 6000 các dòng khác vẫn giữ nguyên.
nhờ anh xem giúp trường hợp này nhé
Thử cái Bí bo Tò Tí Te này coi
PHP:
Public Sub BiBo_ToTiTe()
Dim Cll As Range
For Each Cll In Range([C3], [C3].End(xlDown))
    If Cll.Value = 5000 And Cll.Offset(, 1).Value = 5000 Then Cll.Value = 6000
Next Cll
End Sub
 
Upvote 0
cám ơn sao đơn giản vậy mà e ko nghĩ ra
tuy nhiên e có thêm 1 điều kiện nữa , nếu cột c là 5000 và đồng thời cột d cũng là 5000 thì thì replace cột c thành 6000 các dòng khác vẫn giữ nguyên.
nhờ anh xem giúp trường hợp này nhé
Bài toán đơn giản quá thì nên dùng công thức đi cho gọn. Mượn tạm cột nào đó gán công thức vào, sau đó copy dán giá trị vào cột C.
Còn nếu thích VBA thì
PHP:
Sub abc
   Dim Data(), i
   Data= Range([C3],[C65536].end(3)).resize(,2).value
   For i = 1 to ubound(data)
      If Data(i,1)= 5000 then
         if Data(i,2)= 5000 then
            Data(i,1)= 6000
         End if
      End If
   Next
   [C3].Resize(i-1,2)= Data
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bài toán đơn giản quá thì nên dùng công thức đi cho gọn. Mượn tạm cột nào đó gán công thức vào, sau đó copy dán giá trị vào cột C.
Còn nếu thích VBA thì
PHP:
Sub abc
   Dim Data(), i
   Data= Range([C3],[C65536].end(3)).rezsize(,2).value
   For i = 1 to ubound(data)
      If Data(i,1)= 5000 then
         if Data(i,2)= 5000 then
            Data(i,1)= 6000
         End if
      End If
   Next
   [C3].Resize(i-1,2)= Data
End Sub
cám ơn anh, tại vì em cũng đang muốn học thêm về cách viết vba là thế nào, nên làm phiền anh tí
xin cám ơn rất nhiều
anh ơi code anh chạy nó báo lỗi chổ này:
Data = Range([C3], [C65536].End(3)).rezsize(, 2).Value
 
Lần chỉnh sửa cuối:
Upvote 0
cám ơn anh, tại vì em cũng đang muốn học thêm về cách viết vba là thế nào, nên làm phiền anh tí
xin cám ơn rất nhiều
anh ơi code anh chạy nó báo lỗi chổ này:
Data = Range([C3], [C65536].End(3)).rezsize(, 2).Value
tại vì sai chính tả mà

Data = Range([C3], [C65536].End(3)).resize(, 2).Value
 
Upvote 0
cám ơn sao đơn giản vậy mà e ko nghĩ ra
tuy nhiên e có thêm 1 điều kiện nữa , nếu cột c là 5000 và đồng thời cột d cũng là 5000 thì thì replace cột c thành 6000 các dòng khác vẫn giữ nguyên.
nhờ anh xem giúp trường hợp này nhé

Thử thêm cái này xem (không biết có nhanh hơn không nhưng không phải dùng vòng lặp)
Mã:
Sub xxx()
    With Range([c3], [c65000].End(3))
        .Resize(, 2).Replace 5000, ""
        .Offset(, 1).SpecialCells(4).Offset(, -1).SpecialCells(4) = 6000
        .Resize(, 2).SpecialCells(4) = 5000
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Các anh cho em hỏi cú pháp của hàm Replace
Vi dụ trong code sau có nội dung như thế nào
Mã:
[/COLOR]Sub Main()
On Error Resume Next
Dim i&, n&, path$, File$, Root$, Res(), Sarr, tam$
With UserForm1
   Root = .TextBox1.Value
   [COLOR=#ff0000][SIZE=3]path = Replace("""" & Root & "\""", "\\", "\")[/SIZE][/COLOR]
   tam = IIf(.CheckBox6, path, LoaiFile(path))
   If tam = "" Then
        MsgBox "Chua Chon Loai File!", vbCritical
        Exit Sub
   End If
   Sarr = GetAllFile(tam, .CheckBox7)
   File = .TextBox2
   With CreateObject("Scripting.FileSystemObject")
      For i = LBound(Sarr) To UBound(Sarr)
         If UCase(.getbasename(Sarr(i))) Like UCase(File) & "*" Then
            n = n + 1
            ReDim Preserve Res(1 To n)
            Res(n) = Sarr(i)
         End If
      Next
   End With
   .ListBox1.Clear
   If n > 0 Then .ListBox1.List = Res
End With
End Sub
 
Upvote 0
Các anh cho em hỏi cú pháp của hàm Replace
Vi dụ trong code sau có nội dung như thế nào
Mã:
Mã:
Sub Main()
On Error Resume Next
Dim i&, n&, path$, File$, Root$, Res(), Sarr, tam$
With UserForm1
   Root = .TextBox1.Value
   [COLOR=#ff0000][SIZE=3]path = Replace("""" & Root & "\""", "\\", "\")[/SIZE][/COLOR]
   tam = IIf(.CheckBox6, path, LoaiFile(path))
   If tam = "" Then
        MsgBox "Chua Chon Loai File!", vbCritical
        Exit Sub
   End If
   Sarr = GetAllFile(tam, .CheckBox7)
   File = .TextBox2
   With CreateObject("Scripting.FileSystemObject")
      For i = LBound(Sarr) To UBound(Sarr)
         If UCase(.getbasename(Sarr(i))) Like UCase(File) & "*" Then
            n = n + 1
            ReDim Preserve Res(1 To n)
            Res(n) = Sarr(i)
         End If
      Next
   End With
   .ListBox1.Clear
   If n > 0 Then .ListBox1.List = Res
End With
End Sub
1. Lẽ ra bạn nên post bài vào mục giải thích code. Không nên chen vào chủ đề khác thế này.
2. Cú pháp bạn có thể tham khảo trong Help của VBA. Tại cửa sổ soạn thảo VBA, góc phải phía trên của màn hình, bạn nhập vào từ replace và bấm Enter. Nội dung hướng dẫn cho từ này sẽ hiện ra. Chú ý Replace có 2 loại: hàm của VBA và hàm của Excel. Cách dùng khác nhau. Bạn tự nghiên cứu tiếp nhé.
3. Với câu lệnh trên thì đang sử dụng hàm Replace của VBA. Câu này tìm chuỗi \\ trong chuỗi mẹ và thay vào chuỗi \. Tại sao phải như vậy là do thuật toán của người viết code muốn xử lý cái gì đó ai biết đâu.
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom