- Không nhận được giá trị từ textbox

  • Thread starter Thread starter dmtdmtbb
  • Ngày gửi Ngày gửi
Liên hệ QC

dmtdmtbb

Biệt danh: xDelx
Tham gia
24/5/07
Bài viết
306
Được thích
438
- Bác nào xem dùm cái này .


---------------------------------
Private Sub CommandButton1_Click()
Dim temprow As String
Dim Tempcol As String
temprow = txtrow.Value
Tempcol = txtcol.Value
ActiveWorkbook.Names.Add Name:="DMVL", RefersToR1C1:="=DMVL!temprow:tempcol"
End Sub
----------------------------------



- vd: giá trị nhập vào từ Textbox (txtrow = a3 ,txtcol = b9) ta được (=DMVL!$A$3:$B$9)
- Nhưng đoạn code trên cho ra như thế này (=DMVL!temprow:tempcol)
 
Lần chỉnh sửa cuối:
Bạn cần hàm này

Mã:
'---------------------------------------------------------------------------------------
' Procedure : DefineName
' DateTime  : 13/05/2007 11:12
' Author    : levanduyet
' Purpose   : Define the Name of a Range. Like Insert/Name/Define
'             (R1,C1): Top-Left cell
'             (R2,C2): Bottom-Right cell
'---------------------------------------------------------------------------------------
Sub DefineName(ByVal sWsName As String, ByVal sTableName As String, ByVal R1 As Integer, ByVal C1 As Integer, ByVal R2 As Integer, ByVal C2 As Integer)
    Dim sFormula As String
    On Error Resume Next
    sFormula = "=" & sWsName & "!R" & R1 & "C" & C1 & ":" & "R" & R2 & "C" & C2
    Application.ActiveWorkbook.Names.ADD Name:=sTableName, RefersToR1C1:=sFormula
    ' Reset the Error
    On Error GoTo 0
End Sub

Lê Văn Duyệt
 
Upvote 0
- Bác sửa lại dùm em đoạn code này
- Chạy không được, báo lỗi !!!
Private Sub cmdaddname_Click()
If txtrow = "" Or txtcol = "" Then
MsgBox "Nhap gia tri dong va cot", , "Error !!!"
Else
DefineName
End If
End Sub
---------------------------
Sub DefineName(ByVal sWsName As String, ByVal R1 As String, ByVal C1 As String)
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
sWsName = txtname
R1 = txtrow
C1 = txtcol
Dim sFormula As String
On Error Resume Next
sFormula = "=" & sWsName & "!" & R1 & ":" & C1
Application.ActiveWorkbook.Names.Add Name:=ws, RefersToR1C1:=sFormula
' Reset the Error
On Error GoTo 0
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử code này xem, không "pro" lắm nhưng hình như giải quyết được vấn đề.
Private Sub CommandButton1_Click()
Dim MyRng As String
Dim xI As String, yI As String
Dim x As String, y As String
Dim z As String, t As String
Dim Temprow As String
Dim Tempcol As String

Temprow = TxtRow.Value
Tempcol = TxtCol.Value
'Ten worksheet
wsName = "DMVL"
'Dua ve RiCi
x = Range(Temprow).Row
y = Range(Temprow).Column
xI = "R" & x & "C" & y
z = Range(Tempcol).Row
t = Range(Tempcol).Column
yI = "R" & z & "C" & t
'Refer to
MyRng = "=" & wsName & "!" & xI & ":" & yI
ActiveWorkbook.Names.Add Name:="MyWife", RefersToR1C1:=MyRng
Unload Me
End Sub
 
Upvote 0
- Cám ơn các bác, qua mấy bữa nghiêng qua nghiêng lại cú, giờ thì mình đã hiểu.
 
Upvote 0
dmtdmtbb đã viết:
- Bác sửa lại dùm em đoạn code này
- Chạy không được, báo lỗi !!!
Bạn theo cú pháp của thủ tục chứ.
Mã:
Private Sub cmdaddname_Click()
If txtrow = "" Or txtcol = "" Then
MsgBox "Nhap gia tri dong va cot", , "Error !!!"
Else
DefineName(Tên Worksheet, Tên bảng cần đặt, hàng 1, cột 1, hàng cuối, cột cuối)
End If
End Sub
Chú ý: Tên Worksheet là kiểu chuỗi. Ví dụ: "SHEET_CHINH"
Tên bảng là kiểu chuỗi. Ví dụ: "BANG_KHACH_HANG"
Hàng 1: Hàng đầu tiên của bảng
Cột 1: Cột đầu tiên của bảng
Hàng cuối: Hàng cuối của bảng
Cột cuối: Cột cuối của bảng

Lê Văn Duyệt
 
Upvote 0
Bác Duyệt giải thích hộ, nếu đã có
Hàng 1: Hàng đầu tiên của bảng
Cột 1: Cột đầu tiên của bảng
Hàng cuối: Hàng cuối của bảng
Cột cuối: Cột cuối của bảng
Thì có cần thiết phải thêm Code DefineName
Cám ơn Bác. Nhờ bác xem hộ như thế này có được không. Thấy có vẻ gọn gàng.
Private Sub CommandButton1_Click()
On Error GoTo bien:
Dim MyRng As String
Dim wsName As String
Dim TempRow As String
Dim TempCol As String
If TxtRow = "" Or TxtCol = "" Then
MsgBox "Nhap gia tri dong va cot", , "Error !!!"
Else
TempRow = TxtRow.Value
TempCol = TxtCol.Value
'Ten worksheet
wsName = "DMVL"
MyRng = "=" & wsName & "!" & TempRow & ":" & TempCol
ActiveWorkbook.Names.Add "MySecondWife", Range(MyRng)
End If
Range("MySecondWife").Select
bien:
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chào Thunghi,
Theo bạn mục đích của thủ tục DefineName là gì?

LVD
 
Upvote 0
Web KT

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

Back
Top Bottom