Chuyên mục xử lý, gỡ rối code VBA

Liên hệ QC
Status
Không mở trả lời sau này.

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,932
Chào mọi người ạ.
Em đang làm 1 cái tool tự động tính toán kết quả sản phẩm của máy.
Em copy cái add in liệt kê số file để làm.nhưng khi chạy thì excel cứ bị trắng màn hình.
Bác nào check hộ em xem file này có gì không ổn ạ.
em có add 2 kiểu file em tính luôn ạ : 1 là kiểu cvs và 1 là kiểu file dat.
2 loại file này em làm 2 hàm tính toán khác nhau ạ.
Em xin cảm ơn.
 

File đính kèm

  • GetListFolderAndCreateHyperlink.xlsm
    89.4 KB · Đọc: 3
  • KX-HTS32BR-V4.zip
    169.7 KB · Đọc: 2
  • count.zip
    3.6 KB · Đọc: 1
Upvote 0
Em có đoạn code gộp nhiều file sang 1 file mới chạy trên office 2007 không được. Folder "OK" chạy ổn nhưng folder "Khong duoc" chạy bị lỗi

Em muốn chèn nguồn của dữ liệu truy xuất, file Vidu (STT, dòng và sheet của các file 1,2,3 và 4,5,6 vào cột A trước các hàng gộp dữ liệu có được không). Ví dụ cột A dòng 2 thể hiện: C:\Documents and Settings\Admin\Desktop\OK\4.xls\Ngày1\row2


Sub MergeFilesExcel()
Dim path As String, ThisWB As String, lngFilecounter As Long
Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet
Dim Filename As String, Wkb As Workbook
Dim CopyRng As Range, Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 2
ThisWB = ActiveWorkbook.Name
'Dien duong dan folder chua cac tap tin excel can gom lai.
'Nhu ban thay toi tien duong dan thu muc chua cai file excel cua toi.
path = "D:\Test\Khong duoc"
Application.EnableEvents = False
Application.ScreenUpdating = False
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.xls", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop
Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Ket Thuc!"
End Sub
 

File đính kèm

  • Vidu.xlsx
    10.5 KB · Đọc: 0
  • Khong duoc.rar
    270.7 KB · Đọc: 0
  • Ok.rar
    268 KB · Đọc: 0
Upvote 0
Thầy NDu ơi! thầy xem file này hộ em với ạ. code fix co dãn dòng của em báo debug ở Vùng range. Em cảm ơn nhiều
 

File đính kèm

  • Test.xlsm
    151 KB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
To: vova2209.
Phải viết là: FixRowHight Sheet21.Range("A1:Z71")
Còn muốn viết kiểu bạn thì phải dùng tên Sheet và tên Sheet không được dùng ký tự đặc biệt như cặp lá yêu thương đó và không dùng tiếng Việt.
 
Upvote 0
To: vova2209.
Phải viết là: FixRowHight Sheet21.Range("A1:Z71")
Còn muốn viết kiểu bạn thì phải dùng tên Sheet và tên Sheet không được dùng ký tự đặc biệt như cặp lá yêu thương đó và không dùng tiếng Việt.
Vâng! em cảm ơn a nhiều ạ, code chạy được rồi..
 
Upvote 0
Mình định tự động mở ValidateList bằng tổ hợp phím Alt+Mũi tên xuống bằng lệnh SendKeys "%Down"

Sub Macro1()
Application.SendKeys "%Down"
End Sub

Macro này không lỗi nhưng Không biết tại sao nó không có tác dụng (không mở ValidateList).
Nhờ các bạn trợ giúp. Thanks!
 

File đính kèm

  • sendkeys.xls
    17.5 KB · Đọc: 4
Upvote 0
Nhờ mod xóa giúp (bài gửi 2 lần)
 
Upvote 0
Mình định tự động mở ValidateList bằng tổ hợp phím Alt+Mũi tên xuống bằng lệnh SendKeys "%Down"

Sub Macro1()
Application.SendKeys "%Down"
End Sub

Macro này không lỗi nhưng Không biết tại sao nó không có tác dụng (không mở ValidateList).
Nhờ các bạn trợ giúp. Thanks!
ValidateList thấy lạ quá...
Hóa ra là Data Validation

Ở bên thớt này đang bàn luận về cái đó, anh xem có thông tin gì không.
http://www.giaiphapexcel.com/diendan/threads/tìm-kiếm-trong-data-validation-excel.127658/

Chúc anh ngày vui!
 
Upvote 0
Chào anh chị GPE
em có đoạn code bên dưới mỗi khi chạy xuất hiện bảng thông tin bên dưới, em muốn bỏ thì điều chỉnh ở dòng nào ạ.
mong anh chị xem và hướng dẫn giúp em. em cám ơn nhiều
upload_2017-7-23_20-11-12.png
PHP:
Sub SetDN()
Dim i As Integer
Dim lastRow As Long
Dim lastRow1 As Long
    For i = 2 To 20
        If Sheets("Pickticket").Range("A" & i).Value <> Empty Then
            Sheets("Pickticket").Range("A" & i).Copy
            Sheets("DN").Range("A2").PasteSpecial Paste:=xlPasteValues
            Sheets("CTN_LPN_Checking").Range("A2").PasteSpecial Paste:=xlPasteValues
            With Sheets("DN")
                lastRow = .Range("A10").Value
                .PageSetup.PrintArea = "C1:S" & lastRow
    Range("D11:P11").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("DN").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("DN").Sort.SortFields.Add Key:=Range("D12:D500"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("DN").Sort.SortFields.Add Key:=Range("F12:F500"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                With Sheets("DN").Sort
                    .SetRange Range("D11:P500")
                    .Header = xlYes
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
            End With
                With Sheets("DN").PageSetup
                .PrintTitleRows = "$10:$10"
                End With
                With Sheets("CTN_LPN_Checking")
                    lastRow1 = .Range("A4").Value
                    .PageSetup.PrintArea = "C1:I" & lastRow1
                End With
                With Sheets("CTN_LPN_Checking").PageSetup
                .PrintTitleRows = "$1:$6"
                End With
                Sheets("DN").Copy after:=Sheets("DN")
                Sheets("CTN_LPN_Checking").Copy after:=Sheets("CTN_LPN_Checking")
        End If
    Next i
End Sub
 
Upvote 0
Chào anh chị GPE
em có đoạn code bên dưới mỗi khi chạy xuất hiện bảng thông tin bên dưới, em muốn bỏ thì điều chỉnh ở dòng nào ạ.
mong anh chị xem và hướng dẫn giúp em. em cám ơn nhiều

Bạn thử thêm câu nàu xem có được không
Application.EnableEvents = False
 
Upvote 0
Upvote 0
Mình định tự động mở ValidateList bằng tổ hợp phím Alt+Mũi tên xuống bằng lệnh SendKeys "%Down"

Sub Macro1()
Application.SendKeys "%Down"
End Sub

Macro này không lỗi nhưng Không biết tại sao nó không có tác dụng (không mở ValidateList).
Nhờ các bạn trợ giúp. Thanks!
Hình như phải vầy anh à
Application.SendKeys "%{Down}"
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom