Help : Giải dùm em bài code VBA này với !!

  • Thread starter Thread starter MrAB
  • Ngày gửi Ngày gửi

MrAB

Sơ cấp
Em có đi phỏng vấn kế toán , người ta đưa em cái này để làm , mà hồi giờ k học nên không biết phải làm như thế nào .. có Pro nào giúp e giải nó với ạ ...:(


1/ Bạn nhận được 1 file excel có chứa 1 đoạn code VBA và được yêu cầu làm theo hướng dẫn để sử dụng các tính năng có được từ đoạn code đó.
Khi bạn sử dụng, bạn được thông báo code lỗi.
a/ Bạn sử dụng phím tắt nào để vào khu vực sủa lỗi và thoát ra khỏi khu vực sửa lỗi?
b/ Bạn vui lòng dịch đoạn mã bên dưới theo từng dòng thành ngôn ngữ bình thường mô tả các thao tác excel mà đoạn mã biểu thị để mọi người có thể hiểu?

Code 1
Sheets("independent").Select
With Sheets("independent")
Rows("7:7").Select
Range("A7:BD1048500").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("S2:S3"), Unique:=False
Range("A8:A1000000").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Week").Select
Range("A86").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Code 2
Dim ws As Worksheet
Set ws = Workbooks("ReportEx - Normal - OLD Only").Sheets("week")
Application.CutCopyMode = False
ws.Copy
Code 3
path = "E:\Report\w31-6.9.2015\"
fileName = Range("D4") & " - w31.8-6.9.2015"
ActiveWorkbook.SaveAs fileName:=path & fileName & ".xlsb", FileFormat:=xlExcel12
[TBODY] [/TBODY]
 
Xì chum nên đại kỵ xương cốt
Ðại khái thôi nhé .


Vì trong code chưa có gì tìm kiếm, lấy gì hết nên không vầm định nghiã, phân loại v.v... (Dim)

Sub test()
Sheets("independent").Select ‘Dư thừa , vì đã With Sheets("independent") mà còn select gì nữa

With Sheets("independent") ' Chọn / Với Sheets("independent")
Rows("7:7").Select ' Chọn rows 7
Range("A7:BD1048500").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("S2:S3"), Unique:=False
' đây là ứng dụng Advanced Filter ( lọc cao cấp) . Muốn học, phải đi từ đầu
'code to apply the advanced filter in a range of datạ
'Range(“YourRange”).AdvancedFilter(Action As XlFilterAction, [CriteriaRange], [CopyToRange], [Unique])
  • AdvancedFilter : thành phần của Excel.Range Object.
  • XlFilterAction: lọc kiểu nào
    • Const xlFilterInPlace = 1 ---> lọc nguồn data
    • Const xlFilterCopy = 2 --> lọc và copy target range ( trong trường hợp này ta phải cung cấp vùng copy [CopyToRange] mà được lọc
  • [CriteriaRange]: loc vung điều kiện criteria range ( kể cả vùng này có formulas)
  • [Unique]: ta có thể hoạt định TRUE unique records ( không có Duplicate), False -->tất cả records
Range("A8:A1000000").Select 'Chọn vùng Range("A8:A1000000")
Selection.SpecialCells(xlCellTypeVisible).Select " Chọn vùng đặc biệt (xlCellTypeVisible) (hiện)
Selection.Copy ' copy vùng chọn
Sheets("Week").Select ' nhảy sang trang Sheets("Week")
Range("A86").Select ' chọn ô Range("A86")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' tại ô Range("A86"), paste đặc biệt (cả chì lẫn chài) giá trị của nó,
End With ' chấm dứt loop With

End Sub
 
cảm ơn bác nhiều ạ ..!! :)

còn Code 2 và code 3 như thế nào thế Cậu
 
Code 2
Dim ws As Worksheet
Set ws = Workbooks("ReportEx - Normal - OLD Only").Sheets("week")
Application.CutCopyMode = False
ws.Copy
Code 3
path = "E:\Report\w31-6.9.2015\"
fileName = Range("D4") & " - w31.8-6.9.2015"
ActiveWorkbook.SaveAs fileName:=path & fileName & ".xlsb", FileFormat:=xlExcel12

--------------------------------------------
Code 2
Dim ws As Worksheet 'Declaring variable Worksheet Khai báo / định dạng nó như worksheet (Thay vì ta viết Sheet("name"), thì ta Set ws = Sheet("name") . Như vậy có Dim ws As Worksheet và Set ws .. thì macro sẽ tự động hiểu ws là Sheet("name")

Set ws = Workbooks("ReportEx - Normal - OLD Only").Sheets("week") ' Đặc ws là file "ReportEx - Normal - OLD Only" trang Sheets("week") . Trường hợp này chỉ đúng khi Dim ws as Workbook

Application.CutCopyMode = False ' lệnh không copy/cut vì False

ws.Copy ' tức là lệnh Worksheets("Sheet1") . copy

Code 3
path = "E:\Report\w31-6.9.2015\" ' chỉ định chỗ files ở trong hard drive để mở hay load file

fileName = Range("D4") & " - w31.8-6.9.2015" ' ???? chưa từng thấy kiểu này Range("D4") & " - w31.8-6.9.2015"

ActiveWorkbook.SaveAs fileName:=path & fileName & ".xlsb", FileFormat:=xlExcel12

Trước khi close hay exit, người ta gọi lệnh này để save file ở chỗ nào (path) trong ổ cứng và tên file và đuôi .xlsb. theo kiểu Excel Binary Workbook in 2007-2013 with or without macro ( xlExcel12 = 50) ....
Vi Du: ActiveWorkbook.SaveAs "C:\Users\YourUserName\Desktop\GiaiDap.xlsb", fileformat:=50
 
đa tạ , đa tạ !! <3 <3 .. không biết nói gì hơn :)

Chúc Bác chủ nhật hạnh phúc !
 
Vãi cho phỏng vấn kế toán, bác nào pro thế.
Chắc đệ tử của giaiphapexcel hả?

Bác nào ra đề lên nhận hàng với.
 
Back
Top