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

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

MrAB

Guest
14/11/15
3
0
1
29
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]
 
Khóa học Quản trị dòng tiền
Espresso

Espresso

Trung cấp
30/10/15
108
34
28
74
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
 
M

MrAB

Guest
14/11/15
3
0
1
29
cảm ơn bác nhiều ạ ..!! :)

còn Code 2 và code 3 như thế nào thế Cậu
 
Espresso

Espresso

Trung cấp
30/10/15
108
34
28
74
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
 
M

MrAB

Guest
14/11/15
3
0
1
29
đ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 !
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
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.
 

Xem nhiều

Webketoan Zalo OA