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

Cần code Access để merge cell trong Excel

  • Thread starter hoangmai2605
  • Ngày gửi
H

hoangmai2605

Sơ cấp
31/7/08
4
0
0
Sai gon
Xin chào,
Trong 1 đoạn code access Mai có 1 cell là ws.Range(Chr(70) & (19)) (tức là cell A19). Bây giờ Mai muốn merge cell này với cell ws.Range(Chr(71) & (19)) (tức là cell B19) thì phải dùng method .merge như thế nào hả các bạn.
Vui lòng chỉ nhanh giúp Mai với.
Chân thành cảm ơn.
 
Khóa học Quản trị dòng tiền
paulsteigel

paulsteigel

Trung cấp
13/11/05
103
0
16
48
Hoà Bình
www.sfdp.net
Trộn Cell trong Excel

Cách tốt nhất là thử ghi một macro trong excel về hành động trộn cell - như tôi làm đây

Range("D10:E10").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge

Vậy cú pháp merge đã rõ - bạn cần có một vùng cần merge có chứa 2 ô bạn cần.
Sau đó sử dụng lệnh này theo dạng
Range(xxx).merge
Nhưng trước khi làm điều đó bạn cần phải tham chiếu đến Excel từ trong Access đã.
Cách 1 dùng kiểu tham chiếu sớm (vào thiết lập References trong Acces project và chọn Excel)
Cách 2 dùng kiểu tham chiếu muộn bằng cú pháp CreateObject("Excel.Application")
Sau đó bạn có thể sử dụng kiểu cú pháp lệnh của Excel như thường.
Có nhiều bài viết về phần này, bạn chịu khó tìm nhé
http://www.ddth.com/showthread.php?t=61883
Có gì bạn có thể mail ngocdd@sfdp.net để có thêm chi tiết
 
H

hoangmai2605

Sơ cấp
31/7/08
4
0
0
Sai gon
Mai rat cam on su chi dan cua ban Paulsteigel.

Ban oi, Mai kg muon lam macro trong excel vi phai set lai security cua excel. Thuong trong excel de macro security la very hight ban a de thuan tien trong cac phan mem diet virus.

Nhung nho ban chi ve syntax cua method merge trong access ma Mai da nghien cuu la lam duoc chuyen merge ngay trong code access ban a. Viet ra de trao doi cung ban ne.
ws.Range("F19:G19").Select
ws.Range("F19:G19").MergeCells = True
ws.Range("F19:G19").Merge
ws.Range(Chr(70) & (19)).Value = Round(mvalue, 0)
(voi ws la bien kieu worksheet ma Mai da set, mo file excell va tro den ngay sheet minh can)
Nhu vay cho du gia tri cua mvalue lon nhu the nao di nua thi no van the hien trong 2 cell "F19" & "G19", chu khong bi tinh trang "#####" nua ban a.

Mot lan nua Mai cam on ban nhieu lam nghe. Day la lan dau tien Mai biet goi cau hoi len dien dan va nhan duoc su hoi am dau tien cua ban.

Noi ban dung cuoi nghe, Mai chua tung viet code trong excel, nhung tu nghien cuu va lam duoc 1 so application nho thiet thuc cho co quan minh dang lam.

Chao ban va se gap lai ban sau nhe
 
Sửa lần cuối:
paulsteigel

paulsteigel

Trung cấp
13/11/05
103
0
16
48
Hoà Bình
www.sfdp.net
Merge Cell...

Rất vui là bạn đã thành công trong việc merge Cell, sau đây tôi xin giới thiệu cách sử dụng tham chiếu muộn để sử dụng các ngữ lệnh Excel và tương tác với đối tượng của nó. Cách làm thì cũng không khó lắm và bạn đã làm được rồi nhưng tôi xin phép được bổ sung thêm vài điều bằng cách giới thiệu một thủ tục nhé:
Private Sub AccessExcelApp()
' Khai báo các biến
Dim XlApp As Object
Dim XlWrb As Object
Dim ws As Object Set XlApp=CreateObject("Excel.Application")XlApp.Visible = True ' hiển thị ứng dụng Excel
XlApp.ScreenUpdating = False ' nếu cần thiết phải tính toán với khối lượng lớn, bạn có thể bật cập nhật màn hình khi tính toán để tăng tốc độ nhé

' Sử dụng các lệnh của Excel VBA

Set XlWrb = XlApp.Workbooks.Open("Địa chỉ tập tin", , True)
Set ws= XlWrb.Sheets("Tên worksheet")

' Các đoạn mã lệnh tiếp theo của chương trình

'ws.Range("F19:G19").Select - cái này không còn cần thiết đâu bạn có thể làm ngay lệnh tiếp theo
ws.Range("F19:G19").MergeCells = True
ws.Range("F19:G19").Merge
ws.Range(Chr(70) & (19)).Value = Round(mvalue, 0)
XlApp.ScreenUpdating = True ' Bật lại để Excel cập nhật màn hình cho những thay đổi vừa qua
' Kết thúc làm việc với Excel và dọn dẹp bộ nhớ
XlWrb.Close

XlApp.Quit
Set ws = Nothing
Set XlWrb = Nothing
Set XlApp = Nothing
End Sub
Đây là cách tiếp cận ở cấp thủ tục và bạn sẽ không quan sát được nhiều diễn biến thao tác của Excel.
Nếu bạn muốn chương trình khởi tạo đối tượng Excel trong suốt quá trình thao tác thì bạn nên đặt khai báo biến ở cấp Form và đặt phần khởi tạo Excel trong phần tải (Form_Open) hoặc sự kiện của một nút bấm, điều khiển nào đó sau đó đặt thủ tục dọn bộ nhớ khi đóng Form.
Hy vọng đoạn mã trên sẽ giúp đỡ được bạn ít nhiều (nếu có) hihi.
 
Sửa lần cuối:

Xem nhiều

Webketoan Zalo OA