Giúp mình sửa lỗi Run time Error 1004 trong Worksheet_change với (1 người xem)

Liên hệ QC

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

nicolastn

Thành viên mới
Tham gia
11/6/10
Bài viết
0
Được thích
0
Tình hình là mình mới xem viết code trên youtube và áp dụng thử nhưng do chưa học qua VBA nên không biết sai như thế nào đành nhờ các cao nhân giúp đỡ

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B8:B14")) Is Nothing Then
If Target.Count = 1 Then
Target.Offset(, 1) = "=IFERROR(VLOOKUP(rc[-1];DMSP;2;0);"""")"
Target.Offset(, 3) = "=IFERROR(VLOOKUP(rc[-3];DMSP;4;0);"""")"
Target.Offset(, 4) = "=IFERROR(rc[-2]*rc[-1];"""")"
End If
End If

End Sub
Mình xin cảm ơn trước !
 

File đính kèm

  • HĐ.png
    HĐ.png
    244.1 KB · Đọc: 12
  • VSB.png
    VSB.png
    259.2 KB · Đọc: 11
File đang làm dở đây ạ
Mong các bác giúp đỡ
Em thay dấu ; thành dấu , cũng không được
Bài đã được tự động gộp:

Trong 3 công thức thay tất cả các dấu chấm phẩy bằng dấu phẩy.
Đã thử nhưng không được bác ạ T_T
Bài đã được tự động gộp:

Không có file thì không biết nó sai thế nào để cho bạn xin chữ cảm ơn nữa
File đây bác. Em vào View Code sheet Hoadon và change worksheet để auto ĐVT, đơn giá và thanh tiền bằng vba
 

File đính kèm

Lần chỉnh sửa cuối:
Nhìn thì thấy trong các công thức ở code vẫn có y nguyên dấu chấm phẩy chứ có thay gì đâu.
Bạn đừng trích bài của tôi nữa. Tôi sẽ không bao giờ giúp bạn nữa đâu.

View attachment 275879

----------------
View attachment 275880
Mình thử đổi dấu "," ở máy mình không được nên post file cũ chưa đổi nhờ bác giúp.
Bài đã được tự động gộp:

Dù sao cũng cám ơn bác đã đọc bài của mình.
 
Cách gần cuối nè:
B1: Lập công thức trên ô nào đó của trang tính trống & phải như cháo chảy;
B2: Mở bộ thu macro lên & thực hiện thu lại hành động của bước 1
B3: Sửa lại các câu lệnh nếu có thể; bằng ngược lại thì đưa lên DĐ mà réo nhờ sửa.
Chúc thành công!
 
Cách gần cuối nè:
B1: Lập công thức trên ô nào đó của trang tính trống & phải như cháo chảy;
B2: Mở bộ thu macro lên & thực hiện thu lại hành động của bước 1
B3: Sửa lại các câu lệnh nếu có thể; bằng ngược lại thì đưa lên DĐ mà réo nhờ sửa.
Chúc thành công!
Cám ơn bác đã hướng dẫn giúp
 
Chắc mong muốn của bạn là thế này:
công thức định vị ô RC không thể sử dụng trong code, sẽ gây sai lệch, trừ khi ô thực thi công thức phù hợp với RC


JavaScript:
Private Sub Worksheet_Change(ByVal t As Range)
  If t.Address <> t(1, 1).MergeArea.Address Then Exit Sub
  If Intersect(t, Range("B8:B14")) Is Nothing Then Exit Sub
  On Error Resume Next
  Application.EnableEvents = False
  Dim r As Range, s$
  s = IIf(Application.DecimalSeparator = ".", ",", ";")
  Set r = t.Offset(, 1): r.Value = t.Worksheet.Evaluate("=IFERROR(VLOOKUP(" & r(1, 0).Address(0, 0, external:=1) & s & "DMSP" & s & "2" & s & "0)" & s & """"")")
  Set r = t.Offset(, 3): r.Value = t.Worksheet.Evaluate("=IFERROR(VLOOKUP(" & r(1, -2).Address(0, 0, external:=1) & s & "DMSP" & s & "4" & s & "0)" & s & """"")")
  Set r = t.Offset(, 4): r.Value = t.Worksheet.Evaluate("=IFERROR(" & r(1, -1).Address(0, 0, external:=1) & "*" & r(1, 0).Address(0, 0, external:=1) & s & """"")")
  Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom