Gọi name trong excel

Liên hệ QC

vuong_ks

Thành viên mới
Tham gia
5/11/08
Bài viết
20
Được thích
1
Giả sử mình cần tính khối lượng một số loại cửa. mình đã lập công thức tính và đạt tên cho từng vùng tương ứng với từng loại cửa( vi dụ : D1,D2.D3..) trong sheet CUA MAU.
bây giờ mình lập 1 sheet BAOGIA lấy sheet cửa mẫu làm cơ sở . mình muốn gọi tên vùng mình đã đặt tên ví dụ D1 thì vùng name tương ứng trong sheet CUA MAU được chèn vô sheet BAOGIA .
các bạn có biện pháp nào xin giúp minh với !
 
Giả sử mình cần tính khối lượng một số loại cửa. mình đã lập công thức tính và đạt tên cho từng vùng tương ứng với từng loại cửa( vi dụ : D1,D2.D3..) trong sheet CUA MAU.
bây giờ mình lập 1 sheet BAOGIA lấy sheet cửa mẫu làm cơ sở . mình muốn gọi tên vùng mình đã đặt tên ví dụ D1 thì vùng name tương ứng trong sheet CUA MAU được chèn vô sheet BAOGIA .
các bạn có biện pháp nào xin giúp minh với !

cho ví dụ cụ thể ra file excel để các bạn giúp dễ hơn. bạn nói vậy ko ai hiểu đâu, trong đó có mình.
 
Lần chỉnh sửa cuối:
Giả sử mình cần tính khối lượng một số loại cửa. mình đã lập công thức tính và đạt tên cho từng vùng tương ứng với từng loại cửa( vi dụ : D1,D2.D3..) trong sheet CUA MAU.
bây giờ mình lập 1 sheet BAOGIA lấy sheet cửa mẫu làm cơ sở . mình muốn gọi tên vùng mình đã đặt tên ví dụ D1 thì vùng name tương ứng trong sheet CUA MAU được chèn vô sheet BAOGIA .
các bạn có biện pháp nào xin giúp minh với !
Muốn tạo, sửa, xóa, lọc các Name thì bạn cứ nhấn Ctrl+F3 rồi tiếp tục mò mẫm tìm hiểu sẽ HIỂU.
 
bạn tải file đính kèm, cho chạy Macro.
- vào sheet BAO GIA click Button 1 --> xem kết quả có đúng ko nhé !
- bạn khai báo Name cần copy tại vùng L7:L20, còn cột ShapeRange.Name mình đặt cố định bằng công thức để hỗ trợ Sub CopyPicture (để xoá Pic cũ)
- việc copy ảnh như vậy thì khi in ra chất lượng Text bị mờ hơn 1 tí.

[GPECODE=vb]
Sub CopyPicture() 'mac dinh Properties: Move but don't size
'bi choi~ voi ScreenUpdating --> fai dat. ngoai` ScreenUpdating (neu' co')
Dim ws As Worksheet
Dim rng As Range
Dim vung As Range
Dim vitri As Integer


Set ws = Sheets("BAO GIA")
Set vung = ws.Range("L7:L20")

For Each rng In vung
If rng <> "" And rng.Offset(, 1) <> "," Then
On Error Resume Next 'neu ko tim thay anh de? xoa' (On Error GoTo --> error)
ActiveSheet.Shapes(rng.Offset(, 1).Value).Delete
Sheets("CUAMAU").Range(rng.Value).CopyPicture Appearance:=xlScreen, Format:=xlBitmap
ws.Paste Destination:=ws.Range("A7")

With Selection.ShapeRange
If rng.Row = 7 Then
.Top = .Top + 1
Else
.Top = vitri
End If

.Name = rng.Offset(, 1).Value

vitri = .Top + .Height
End With
End If
Range("A1").Select 'vi dang chon Pic
Next

Set ws = Nothing: Set vung = Nothing
End Sub
[/GPECODE]

File đính kèm ---> #10
 
Lần chỉnh sửa cuối:
Chân thành Cám ơn bạn đã nhiệt tình!
Nhưng chưa đúng như yêu cầu của mình. ý mình là chèn mẫu tính toán công thức như vùng name bên sheet CUA MAU khi chèn vô xong rùi mình có thể thay đổi thông số để có kết quả tính toán mới (có thể có nhiều mẫu D_1 nhưng thông số kích thước khác nhau)
 
Chân thành Cám ơn bạn đã nhiệt tình!
Nhưng chưa đúng như yêu cầu của mình. ý mình là chèn mẫu tính toán công thức như vùng name bên sheet CUA MAU khi chèn vô xong rùi mình có thể thay đổi thông số để có kết quả tính toán mới (có thể có nhiều mẫu D_1 nhưng thông số kích thước khác nhau)
hehe,
do bạn đặt sheet trống và nói yêu cầu hơi khó hiểu +-+-+-+ ---> bạn hãy điền thử kết quả mong muốn (khi làm bằng tay) tại sheet BAO GIA để mọi người dễ hình dung hơn ???
 
Mình xin gửi lại file như sau : https://www.mediafire.com/?qbcoql78ccsmozd
mình có đổi name vùng lại mình có ghi chú rõ
bạn xem nhé
hehe,
- bạn mà ko gửi sheet kết quả mẫu chắc chẳng bao h đoán trúng ý cả.
- để copy vùng từ sheet CUAMAU sang sheet BAO GIAko mất định dạng + công thức đi kèm, chắc phải chỉnh lại công thức của sheet CUAMAU để khi copy công thức sang sheet kia ---> các địa chỉ ô vẫn đúng.
 
Mình xin gửi lại file như sau : https://www.mediafire.com/?qbcoql78ccsmozd
mình có đổi name vùng lại mình có ghi chú rõ
bạn xem nhé
mình lập sẵn code cho 2 file:

(*) File ...(2): Copy vùng dựa vào Name.

(*) File ...(3): ko dùng Name, thay vào đó lập công thức xác định vùng cần copy (cột O sheet CUAMAU):
cách này có nhiều ưu điểm:
- dễ thấy được vùng mà bạn đã cài đặt
- nếu số lượng vùng càng nhiều ---> vẫn linh hoạt + dễ điều chỉnh (do 1 công thức duy nhất)
- khi chèn Row vẫn ko bị ảnh hưởng so với khi dùng Name (nếu chèn ko đúng vị trí Row)
=> bạn có thể loại bỏ các Name đã đặt cho các vùng đó.

'--------
BAOGIA_CUAMOI (2): https://www.mediafire.com/?qdy59cb6u796mls
BAOGIA_CUAMOI (3): https://www.mediafire.com/?5lhwinoq99op0ab
BAOGIA_CUAMOI (3_1): https://www.mediafire.com/?6hhononvv2oib32

[GPECODE=vb]
Sub GPE_CopyVung()
Dim ws As Worksheet, vung As Range, Clls As Range
Dim Rng As Range, sRng As Range
Dim LastRow1 As Long, LastRow2 As Long, LastRow3 As Long
Dim SoLuong As String, cotMaxHieu As String, cotThanhTien As String


Set ws = Sheets("BAO GIA")
Set vung = ws.Range("N7:N50")

ws.Select
ws.Range("A7:M1000").Clear

For Each Clls In vung
If Clls <> "" Then
LastRow1 = ws.Range("L" & Rows.Count).End(xlUp).Offset(1).Row

Set Rng = Sheets("CUAMAU").Range("N:N")
Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
Worksheets("CUAMAU").Range(sRng.Offset(, 1)).Copy Destination:=ws.Range("A" & LastRow1)
ws.Range("M" & LastRow1) = Clls.Value
'sua? lai. cong thuc cot Thanh Tien`
SoLuong = ws.Range("J" & Rows.Count).End(xlUp).Address(True, True, xlR1C1)
LastRow2 = ws.Range("L" & Rows.Count).End(xlUp).Row
ws.Range("L" & LastRow1 + 1).Resize(LastRow2 - LastRow1).FormulaR1C1 = "=RC[-1]*RC[-4]*" & SoLuong
Else
MsgBox "ko tim` thay' vung` = " & Clls & " tai. sheet CUAMAU", vbExclamation
End If
End If
Next

'tao. Footer
LastRow3 = Range("L" & Rows.Count).End(xlUp).Offset(1).Row
cotMaxHieu = Range([B65000].End(xlUp), [B7]).Address(True, True, xlR1C1)
cotThanhTien = Range([L65000].End(xlUp), [L7]).Address(True, True, xlR1C1)
'dien` Value
Range("J" & LastRow3) = Range("O5").Value 'Tong
Range("L" & LastRow3) = "=SUMIF(" & cotMaxHieu & ",""""," & cotThanhTien & ")"
'dinh. dang.
Range("J" & LastRow3 - 1).Resize(, 3).Copy
Range("J" & LastRow3).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False

Range("A1").Select
Set ws = Nothing: Set vung = Nothing
End Sub
[/GPECODE]
 
Lần chỉnh sửa cuối:
Tuyệt. Cám ơn bạn rất nhiều !
Mình còn 1 điều nữa muốn hỏi mình bị cái này hoài mà không hiểu lý do.
Sheet bao gia cột mã hiệu và chất liệu sao vadilation không hoạt động dù kiểm tra thì thấy công thức vadilation đã đầy dủ
 
Tuyệt. Cám ơn bạn rất nhiều !
Mình còn 1 điều nữa muốn hỏi mình bị cái này hoài mà không hiểu lý do.
Sheet bao gia cột mã hiệu và chất liệu sao vadilation không hoạt động dù kiểm tra thì thấy công thức vadilation đã đầy dủ
 
Tuyệt. Cám ơn bạn rất nhiều !
Mình còn 1 điều nữa muốn hỏi mình bị cái này hoài mà không hiểu lý do.
Sheet bao gia cột mã hiệu và chất liệu sao vadilation không hoạt động dù kiểm tra thì thấy công thức vadilation đã đầy dủ

mình cũng chưa rõ nguyên nhân --> chỉ phỏng đoán là Sheet BAO GIA được copy từ Excel phiên bản cũ và bị "nhiễm" 1 lỗi gì đó. Mình thử copy cột Mã Hiệu sheet CUAMAU sang 1 sheet mới để kiểm tra Data Validation thì ko có tình trạng như vậy.

---> bạn tải file đính kèm ở # 11 (File BAOGIA_CUAMOI (3_1)) tiếp nhé !
 
Lần chỉnh sửa cuối:
Sao bên sheet CUAMAU mình click đôi vô các vùng để copy qua sheet bao gia rùi enter thì nó trả về giá trị
#VALUE!
cái này mình gà quá bạn vui lòng chỉ giúp .
 
Sao bên sheet CUAMAU mình click đôi vô các vùng để copy qua sheet bao gia rùi enter thì nó trả về giá trị
#VALUE!
cái này mình gà quá bạn vui lòng chỉ giúp .
hic,
- copy thì Right Click chứ Click đôi ... --> chưa hiểu +-+-+-+,
- bạn định copy cái gì từ sheet CUAMAU sang sheet BAO GIA thì 1 là quay video hoặc gửi file lên GPE để mình sao?
 
A không . Bên sheet cuamau bạn đã dùng công thức để để lấy vùng( ở cột o) . Minh click vo rui enter nó trả về #value!
 
A không . Bên sheet cuamau bạn đã dùng công thức để để lấy vùng( ở cột o) . Minh click vo rui enter nó trả về #value!

ah, hiều rồi.
Do nó là công thức mảng nên khi kết thúc công thức phải dùng Ctrl+Shift+Enter chứ ko thể dùng Enter bình thường được.
cong thuc mang.jpg

bạn nhìn công thức phía trước va sau có đánh dấu {} <=> là Công thức mảng

(là do nhóm này nên buộc phải dùng nó: MATCH(TRUE;J8:J$1000<>"";0))
 
Lần chỉnh sửa cuối:
Mình bạn đã học hỏi được nhiều!chân thành cảm ơn bạn !!!!!!!!!!!!!!
 
Web KT

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

Back
Top Bottom