Muốn thay đổi công thức sau

  • Thread starter Thread starter cbtm
  • Ngày gửi Ngày gửi
Liên hệ QC

cbtm

Thành viên mới
Tham gia
16/1/07
Bài viết
35
Được thích
0
Nghề nghiệp
WWW.JABIL.COM
CHÀO CÁC BẠN
MÌNH CÓ MỘT CÔNG THỨC NẾU SAI CỦNG ĐƯỢC NHƯ MÌNH MUỐN ĐỔI SANG RANGE THÌ ĐỀU BỊ TỪ CHỐI MÌNH KHÔNG BIẾT DÙNG GÌ CHO ĐÚNG
Mã:
[COLOR=Red]With Workbooks("JOLIE NAIL SPA.xls")
    .Sheets("HANH").Select
    Columns("G").Select 'Destination:=Sheets("INCOME").Select.Range("A1")
    Selection.Copy
    .Sheets("INCOME").Select
    Columns("H").Select
     Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
[/COLOR]
CÁM ƠN CÁC BẠN
 
Chỉnh sửa lần cuối bởi điều hành viên:
CHÀO CÁC BẠN

MÌNH CÓ MỘT CÔNG THỨC NẾU SAI CỦNG ĐƯỢC NHƯ MÌNH MUỐN ĐỔI SANG RANGE THÌ ĐỀU BỊ TỪ CHỐI MÌNH KHÔNG BIẾT DÙNG GÌ CHO ĐÚNG

With Workbooks("JOLIE NAIL SPA.xls")
.Sheets("HANH").Select
Columns("G").Select 'Destination:=Sheets("INCOME").Select.Range("A1")
Selection.Copy
.Sheets("INCOME").Select
Columns("H").Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With

CÁM ƠN CÁC BẠN
Bạn nói muốn THAY ĐỔI CÔNG THỨC nhưng trong code nào thấy công thức gì chứ? Chỉ là copy paste... và code vẫn hoạt động bình thường... Vậy bạn thắc mắc gì đây?
Có chăng là nên rút gọn code (code lằng nhằng quá... Select tới, Select lui)
PHP:
Sub Test()
  With Workbooks("BaiTap.xls")
    .Sheets("HANH").Columns("G").Copy
    .Sheets("INCOME").Columns("H").PasteSpecial
  End With
  Application.CutCopyMode = False
End Sub
Còn như chỉ muốn lấy giá trị (không cần Paste công thức) thì càng đơn giản hơn:
PHP:
Sub Test()
  With Workbooks("BaiTap.xls")
    .Sheets("INCOME").Columns("H").Value = .Sheets("HANH").Columns("G").Value
  End With
End Sub
 
Nhờ các bạn thêm một lần nửa

Mã:
Dim TotalValue
    TotalValue = 0
     Range("A1").Select
    Do Until ActiveCell.Value = Empty
    If ActiveCell.Value = "DATE" Then
        ActiveCell.Offset(1, 0).Select
        
    ElseIf DateValue(ActiveCell.Value) = DateValue(Jolienailspa.DTPicker7) Or _
        DateValue(ActiveCell.Value) > DateValue(Jolienailspa.DTPicker7) Then
            If DateValue(ActiveCell.Value) = DateValue(Jolienailspa.DTPicker8.Value) Or _
                DateValue(ActiveCell.Value) < DateValue(Jolienailspa.DTPicker8.Value) Then
            
                TotalValue = TotalValue + ActiveCell.Offset(0, 9)
                ActiveCell.Offset(1, 0).Select
            Else
                ActiveCell.Offset(1, 0).Select
            End If
       
      
    Else
        ActiveCell.Offset(1, 0).Select
    End If
    
    Loop
    Select Case TotalValue
        Case 0
            Jolienailspa.TextBox9.Value = "$" & "0"
        Case Is > 0
            Jolienailspa.TextBox9.Value = "$" & TotalValue
    End Select
 
Lần chỉnh sửa cuối:
Mình không rõ bạn hỏi gì, nhưng xem code mình góp ý là trong code nếu không thực sự cần thiết thì không nên select, nó mất thời gian dịch chuyển con trỏ không cần thiết. Nếu code nằm trong thân hàm thì phát sinh lỗi. Bạn đã dịch chuyển bằng lệnh Do Until rồi.
Lệnh if có sử dụng elseif nên đổi thành select case dễ xem và code rõ ràng hơn...
File của bạn đơn giản mình dùng Ctrl+Break là chặn code của bạn, nhưng mình không muốn. Bạn đừng nên gửi file dạng đánh đố thế này (Rem lệnh mở Form trong event WookbookOpen) vì còn rất nhiều người khác cũng quan tâm nhưng khả năng chưa bằng bạn.Thông cảm cho sự góp ý thẳng thắn của mình nhhé.
 
Lần chỉnh sửa cuối:
Mã:
Dim TotalValue
    TotalValue = 0
     Range("A1").Select
    Do Until ActiveCell.Value = Empty
    If ActiveCell.Value = "DATE" Then
        ActiveCell.Offset(1, 0).Select
        
    ElseIf DateValue(ActiveCell.Value) = DateValue(Jolienailspa.DTPicker7) Or _
        DateValue(ActiveCell.Value) > DateValue(Jolienailspa.DTPicker7) Then
            If DateValue(ActiveCell.Value) = DateValue(Jolienailspa.DTPicker8.Value) Or _
                DateValue(ActiveCell.Value) < DateValue(Jolienailspa.DTPicker8.Value) Then
            
                TotalValue = TotalValue + ActiveCell.Offset(0, 9)
                ActiveCell.Offset(1, 0).Select
            Else
                ActiveCell.Offset(1, 0).Select
            End If
       
      
    Else
        ActiveCell.Offset(1, 0).Select
    End If
    
    Loop
    Select Case TotalValue
        Case 0
            Jolienailspa.TextBox9.Value = "$" & "0"
        Case Is > 0
            Jolienailspa.TextBox9.Value = "$" & TotalValue
    End Select
Nói thiệt, file bạn chẳng có gì phức tạp mà nhìn code thấy oải quá... dài dòng và lượm thượm... Những thứ "râu ria" không cần thiết còn nhiều hơn cả phần tính toán chính ---> Lý ra nên thiết kế vừa phải, cái nào không cần thiết lắm hãy bỏ bớt... Vì mục đích cuối cùng của Excel vẫn là TÌNH TOÁN NHANH VÀ CHÍNH XÁC
Nhìn code của bạn, tự nhiên muốn "quăng" tất, làm lại từ đầu (chẳng muốn sửa lại tí nào)
 
chào các bạn
mình mới chập chửng vào vb thôi, đang thử, bài tập đầu tiên đó thông cảm dùng. cám ơn các cao thủ.
CODE Ở TRÊN LÀ MÌNH MUỐN TÌM TOTAL CỦA MỘT GÍA TRỊ TRONG RANGE

CÁM ƠN CÁC BẠN THÔNG CẢM NHÉ
 
nhờ các bạn giúp đở xem lại nhửng phần không đúng cám ơn các bạn
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom