Mỗi tuần một chuyên đề

Thủ thuật Excel

  • Thread starter HyperVN
  • Ngày gửi
T

Tran Chau

Guest
23/11/04
149
0
0
65
TP Ho Chi Minh
tranxuanthien nói:
Như đã hứa, đây là đoạn mã chép số liệu từ bảng kê ghi có vào Sổ cái, gồm 4 vòng lặp lồng nhau. Tui đã gửi file số liệu mẫu cho bác LeVanDuyet. Bạn nào quan tâm thì xin mời tham khảo và liên hệ bác LeVanDuyet để tải về....
End Sub
Bạn Duyệt có thể upload file nầy cho mình tham khảo được không?
 
Khóa học Quản trị dòng tiền
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
THAO TÁC VỚI TẬP TIN DÙNG VBA HAY ĐỐI TƯỢNG FILESEARCH
(Lược dịch từ sách Excel 2000 Power Programming)
Rất nhiều ứng dụng bạn phát triển cho Excel phải làm việc với những file ở bên ngòai. Ví dụ bạn muốn liệt kê các file trong một thư mục, xóa file, đặt lại tên file,vv. Và dĩ nhiên là có thể nhập hay xuất dữ liệu.
VBA cung cấp cho các bạn nhiều hàm và statement (tạm dịch là phát biểu) giúp bạn thao tác với các tập tin lưu trên đĩa. Nếu bạn dùng Excel 2000 bạn có thể dùng đối tượng FileSearch , nó sẽ dễ dàng hơn khi bạn dùng VBA statement và hàm.
Các lệnh VBA bạn có thể dùng để làm việc với các File là:
Lệnh - Command
Mục đích - What it does
ChDir
Thay đổi thư mục hiện tại
CurDrive
Thay đổi ổ đỉa hiện tại
Dir
Trả về tên File hay tên thư mục khớp với ký tự đặc biệt hay thuộc tính của file
FileCopy
Sao chép một file
FileDateTime
Trả về ngày giờ cuối cùng mà file được sửa chữa
FileLen
Trả về kích thước của file (bytes)
GetAttr
Trả về ký tự đại diện cho thuộc tính của file
Kill
Xóa một file
MkDir
Tạo thư mục mới
Name
Đặt tên file hay thư mục
RmDir
Xóa một thư mục rỗng
SetAttr
Thay đổi thuộc tính của file
Vậy để xác định một file có tồn tại hay không ta có thể viết một hàm sau:
Function FileExists(fname) As Boolean
If Dir(fname)<>"" Then
FileExists=True
Else FileExists=False
End Function
fname: đường dẫn có cả tên file
Xin tham khảo bài các hàm tiện ích.
Sử dụng đối tượng FileSearch
Phương thức hay thuộc tính
Mục đích
FileName
Chỉ định tên file (các ký tự thay thế cũng được chấp nhận)
FoundFile
Trả về một đối tượng chứa các tên file được tìm thấy
LookIn
Thư mục cần tìm
SearchSubfolders
Trả về True nếu thư mục con được tìm
Execute
Thực hiện tìm kiếm
NewSearch
Reset lại đối tượng FileSearch
Các bạn hãy đưa đọan mã này vào trong module và thiết lập một nút lệnh trên worksheet của bạn, thiết lập Assign Macro cho nút lệnh là hàm ListFile
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Sub ListFiles()
Msg = "Select a location containing the files you want to list."
Directory = GetDirectory(Msg)
If Directory = "" Then Exit Sub
If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
' Insert headers
r = 1
Cells.ClearContents
Cells(r, 1) = "FileName"
Cells(r, 2) = "Size"
Cells(r, 3) = "Date/Time"
Range("A1:C1").Font.Bold = True
r = r + 1
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Directory
.Filename = "*.*"
.SearchSubFolders = False
.Execute
For i = 1 To .FoundFiles.Count
Cells(r, 1) = .FoundFiles(i)
Cells(r, 2) = FileLen(.FoundFiles(i))
Cells(r, 3) = FileDateTime(.FoundFiles(i))
r = r + 1
Next i
End With
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Bạn sẽ thấy sự tiện lợi của đối tượng FileSearch.
Chúc các bạn thành công.
Lê Văn Duyệt.
 
L

laivminh

Guest
20/4/05
7
0
0
48
hanoi
To: Tranxuanthien
Theo tôi nghĩ để lên sổ cái Ko cần đến những đoạn code khó hiểu của các bác
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
HaiAu nói:
Cách ản, hiện các dòng, cột theo ý muốn :
1. Ẩn dòng : Đánh dấu các dòng muốn ẩn đi, chọn Format \ Row \ hide
2. Hiện dòng : Đánh dấu các dòng đã ẩn đi, chọn Format \ Row \ Unhide
3. Ẩn cột : Đánh dấu các cột muốn ẩn đi, chọn Format \ Column \ hide
4. Hiện cột : Đánh dấu các cột đã ẩn đi, chọn Format \ Column \ Unhide

Bổ sung phím tắt để thực hiện các lệnh trên:
1. CTRL + 9
2. CTRL + SHIFT + 9
3. CTRL + 0
4. CTRL + SHIFT + 0
(Các số trên keyboard bên trái, không phải bàn phím number bên phải)
 
S

StonyHeartedMan

Guest
2/10/04
306
2
0
Hà nội
www.vnuni.net
F

ForestC

Guest
11/1/05
377
1
0
44
E'rywhere
À, Miss Ni cô Huệ Nhi chùa Phúc Am đây mà. Miss này giỏi lắm nhé, là đệ tử ruột của thầy Quách Tuấn Ngọc (ĐHBK) và chú bộ đội Nguyễn Cường (Yên Bái) đây mà. Ngoài ra miss ấy là 1 cây viết văn rất có triển vọng, không biết sau bao năm rồi Miss ấy có còn là .. Miss nữa không? ...
 
T

Tran Chau

Guest
23/11/04
149
0
0
65
TP Ho Chi Minh
Tự động xuống hàng khi đến cuối bảng (Echip só 229 ngày 28-6-2005 )
1- Về ý tưởng của bạn Thiên rất hay, I chỉ mạn phép bỏ bớt vài chữ mà thấy vẫn chạy ổn định, có vẻ dễ đọc hơn:

Private Sub KIEMTRA_GotFocus()
If ActiveCell.Column > 8 Then
ActiveCell.Offset(1, -8).Select
'8: table có 8 cột, cột thứ nhất của table bắt đầu ở cột A
Else
Selection.Select
End If
End Sub

2- I khg hiểu muc đích dùng : Textbox và GotForcus, Activate. Đã thử dùng như sau, cho có vẻ dễ đọc (thật sự vì mấy cái event I chưa rành) thì thấy vẫn chạy đựơc :

Trong sheet có table:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
KT1 ‘KIEMTRA1
End Sub

Trong module
Sub KT1()
If ActiveCell.Column > 8 Then
ActiveCell.Offset(1, -8).Select
Else
Selection.Select
End If
End Sub

Còn cách nào viết nửa khg ? Bạn nào thử đưa vào With....End With ?
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Nếu thủ thuật EXCEL mà viết bằng VBA thì cả ngày viết cũng không hết. Có bạn nào có thủ thuật mà không dùng VBA thì xin đưa ra để mọi người học hỏi.
 
H

heroic

Guest
11/11/04
56
0
0
vn
Theo quan điểm của tôi thì kiến thức là vô tận, Còn nhiều chưa biết chứ? Thế mới cần chia sẻ lẫn nhau. giúp nhau cùng tiến bộ. Nhưng hãy phân loại theo từng chủ đề và Ví dụ nhỏ áp dụng để mọi thành viên tiện học hỏi chứ cứ đi theo từng trang thế này thì đọc khoảng 4page đã không hiểu cái gì rồi.
Admin nên phân loại ra bài viết hay có cùng chủ đề vào một mục.
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Có lẽ những Code VBA nên đưa vào từng chủ đề riêng. Chúng ta đã có những chủ đề về Excel và VBA, VBA và KT, chủ đề về tạo Menu, tạo bảng chọn dữ liệu, riêng thủ thuật Excel, hãy trả nó về đúng tên chủ đề là những thủ thuật, những ý tưởng hay, sáng tạo..Còn không, chúng ta sẽ khóa Topic này lại vì nó đã quá dài, và có phần hơi lan man, thay vào đó những Topic khác có chủ đề rõ ràng hơn, để có thể thảo luận sâu hơn về một đề tài nào đó
 
L

luuly

Guest
15/10/05
17
0
0
43
Tp HCM
Theo mình chỉ cần sử dụng máy function của bác microsoft là được, sử dụng VBA rắc rối quá....
 
Q

quochung2005

Trung cấp
20/10/05
99
0
16
42
DA NANG
chào các bác!
Minh la thanh vien của webketoan tuyminh tham gia chua lâu những mình rất thích trang web nay
các ban oi có ai chỉ dẫn doạn mã ở trên kô
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
luuly nói:
Theo mình chỉ cần sử dụng máy function của bác microsoft là được, sử dụng VBA rắc rối quá....

Tuy rằng có hơi rắc rối nhưng tiện ích mà nó đem lại là kô nhỏ.
quochung2005 nói:
chào các bác!
Minh la thanh vien của webketoan tuyminh tham gia chua lâu những mình rất thích trang web nay
các ban oi có ai chỉ dẫn doạn mã ở trên kô
Bạn cần phải học từ từ thôi, không ai đủ khả năng để giúp bạn hiểu ngay được.
 
Q

quochung2005

Trung cấp
20/10/05
99
0
16
42
DA NANG
chao bac levanduyet
minh thấy mã nguồn chuyển từ bảng kê lên sổ cái hay quá bác cho minh mã nguồn đó nha
mail:duonghung19812002@yahoo.com
 
B

bich

Trung cấp
8/12/05
100
0
0
42
nhatrang
Chào các bạn. Mình cũng rất thích sử dụng excel. Nhưng cty mình đang sử dụng phần mềm kế toán, nên mình muốn dowload 1 số phần mềm trên trang web này xuống để tham khảo. Nhưng mình down xuống lại ko đọc được file. Tiếc thật đấy!
 
M

mysterious_girl

Guest
bich nói:
Chào các bạn. Mình cũng rất thích sử dụng excel. Nhưng cty mình đang sử dụng phần mềm kế toán, nên mình muốn dowload 1 số phần mềm trên trang web này xuống để tham khảo. Nhưng mình down xuống lại ko đọc được file. Tiếc thật đấy!

Chào bạn. Bạn down ở đâu thế? Ở thư viện mình down thấy bình thường mà.Bạn có thể cho biết,khi bạn down thì nó báo lỗi gì ko?
 
B

bich

Trung cấp
8/12/05
100
0
0
42
nhatrang
green_field nói:
Chào bạn. Bạn down ở đâu thế? Ở thư viện mình down thấy bình thường mà.Bạn có thể cho biết,khi bạn down thì nó báo lỗi gì ko?
Mình down trong 1 phần mềm có tiêu đề là"PHẦN MỀM KẾ TOÁN". Mình đã thử nhiều kiểu chữ nhưVNI- Times hay Time Roman.. , nhưng không đọc được tiếng việt
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
Vì nó sử dụng kiểu font abc (TCVN3) những font bắt đầu bằng .vn bạn cần có những font này trước nhé.
 

Xem nhiều

Webketoan Zalo OA