Giúp đỡ - Lấy địa chỉ ô Excel bằng VBA và gán cho biến

Liên hệ QC

doductiep

Thành viên mới
Tham gia
21/12/10
Bài viết
11
Được thích
0
Em đang làm việc với bảng dữ liệu excel bằng VBA
Để tính toán Cần khai báo dữ liệu cần tính bắt đầu và kết thúc từ hàng và cột nào
HIện tại em sài cách thủ công là Đếm ô dữ liệu bắt đầu/kết thúc xem nó Dòng mấy/cột mấy rồi nhập để gán gán giá trị cho biến để tính
Nhờ các ac giúp em mấy dòng code (nếu có) để Khi chạy VB nó sẽ đưa ra 1 lựa chọn Kích vào 1 ô nào đó trong sheet hiện hành, sau đó gán biến bằng số hàng hoặc số cột của ô đó.
Thường em phải code thế này để nhập thủ công:
Rdata1 = Application.InputBox("Nhập hàng bắt đầu số liệu")
Cdata1 = Application.InputBox("Nhập cột bắt đầu số liệu ")

Xin cảm ơn!
 
Em đang làm việc với bảng dữ liệu excel bằng VBA
Để tính toán Cần khai báo dữ liệu cần tính bắt đầu và kết thúc từ hàng và cột nào
HIện tại em sài cách thủ công là Đếm ô dữ liệu bắt đầu/kết thúc xem nó Dòng mấy/cột mấy rồi nhập để gán gán giá trị cho biến để tính
Nhờ các ac giúp em mấy dòng code (nếu có) để Khi chạy VB nó sẽ đưa ra 1 lựa chọn Kích vào 1 ô nào đó trong sheet hiện hành, sau đó gán biến bằng số hàng hoặc số cột của ô đó.
Thường em phải code thế này để nhập thủ công:
Rdata1 = Application.InputBox("Nhập hàng bắt đầu số liệu")
Cdata1 = Application.InputBox("Nhập cột bắt đầu số liệu ")

Xin cảm ơn!
Bạn có thể đính kèm File để nhà họ dễ hình dung công việc Bạn đang làm. Có thể Bạn nhận được kết quả ngoài sự tưởng tượng của Bạn
 
Upvote 0
Trong khi chờ file của bạn, mình đề nghị bạn thử cặp macro sau:

Macro sự kiện tại trang tính
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Call RowAndColumn
End Sub
& 1 macro trong mmodule1:
Mã:
Dim rData As Long, cData As Integer
Sub RowAndColumn()
 Dim Rng As Range

 Set Rng = Selection
 rData = Rng.Row:                   cData = Rng.Column
 MsgBox cData, , rData 
End Sub
 
Upvote 0
Em đang làm việc với bảng dữ liệu excel bằng VBA
Để tính toán Cần khai báo dữ liệu cần tính bắt đầu và kết thúc từ hàng và cột nào
HIện tại em sài cách thủ công là Đếm ô dữ liệu bắt đầu/kết thúc xem nó Dòng mấy/cột mấy rồi nhập để gán gán giá trị cho biến để tính
Nhờ các ac giúp em mấy dòng code (nếu có) để Khi chạy VB nó sẽ đưa ra 1 lựa chọn Kích vào 1 ô nào đó trong sheet hiện hành, sau đó gán biến bằng số hàng hoặc số cột của ô đó.
Thường em phải code thế này để nhập thủ công:
Rdata1 = Application.InputBox("Nhập hàng bắt đầu số liệu")
Cdata1 = Application.InputBox("Nhập cột bắt đầu số liệu ")

Xin cảm ơn!
Không biết dữ liệu của bạn như thế nào.nhưng nếu bạn đã chọn cách click chọn một ô để lấy địa chỉ dòng hay cột là số thì tham khảo .Column .Row như bài #3 hoặc .Address là lấy địa chỉ dạng A1B1 .Còn nếu dữ liệu của bạn là liên tiếp thì sau khi tích chọn một ô thì xem như ô đó là selection rồi thì bạn có thể thử dùng .CurrentRegion để lấy hết dữ liệu liên tiếp
 
Lần chỉnh sửa cuối:
Upvote 0
Function ChonMotRange() As Range
' dung inputbox de giup nguoi dung chon mot range

Dim DefaultRange As Range

' range mac dinh la Selection
If TypeName(Selection) = "Range" Then
Set DefaultRange = Selection
Else
Set DefaultRange = ActiveCell
End If

' dung inputbox de chon range
On Error Resume Next
Set ChonMotRange = Application.InputBox( _
Title:="CHON RANGE", _
Prompt:="Chon Range de lam viec", _
Default:=DefaultRange.Address, _
Type:=8)
On Error GoTo 0
' Luu y: truong hop cancel thi tra ve Nothing

End Function

-----​

Code xét range đã chọn:

Set RChon = ChonMotRange
If Not RChon Is Nothing Then
With RChon
RData1 = .Cells(1,1).Row
CData1 = .Cells(1,1).Columns
numR1 = .Rows.Count
numC1 = .Columns.Count
End With
End If
 
Upvote 0
Sau tất cả các giúp đỡ bài #5 của bác @VetMini là phù hợp với bài toán của em nhất.
Cảm ơn tất cả các a/c nhé.
(Rút kinh nghiệm lần sau em sẽ post cả file để các bác dễ hình dung và giúp đỡ đúng yêu cầu tránh mất thời gian :wiggle::wiggle::wiggle:)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom