Xem bai viet bang font Unicode
PCWorld VN
Hái: T«i cã mét sè b¶ng tÝnh trong Excel vµ ®· cµi mËt m· cho mçi b¶ng tÝnh. Nhng t«i l¹i quªn mÊt ®o¹n m· nªn kh«ng tµi nµo më ®îc tµi liÖu. Hái cã c¸ch g× më ®îc tËp b¶ng tÝnh nµy kh«ng?
Tr¶ lêi: VÒ nguyªn t¾c, nÕu b¹n ®· quªn (hay kh«ng biÕt) password cña mét file b¶ng tÝnh (hay bÊt kú file d÷ liÖu cã password nµo) th× b¹n kh«ng thÓ truy xuÊt ®îc nã. Tuy nhiªn, nÕu b¶ng tÝnh cña b¹n do Excel 5.0 t¹o ra th× b¹n cã thÓ nhê Excel 97 më l¹i ®îc dï b¹n ®· quªn password.
Hái: Trong Excel, em ®îc biÕt nh÷ng hµm t×m kiÕm vµ s¾p xÕp nh: Vlookup, Hlookup, Lookup, nhng nh÷ng hµm nµy chØ t×m kiÕm gi¸ trÞ khi ®· ®îc s¾p xÕp theo thø tù t¨ng dÇn míi cho kÕt qu¶ chÝnh x¸c. Nay em muèn biÕt cã c¸ch nµo lµm cho sù s¾p xÕp bÊt kú vÉn cho ®îc kÕt qu¶ tr¶ vÒ t¬ng øng víi trÞ cÇn t×m chÝnh x¸c kh«ng?
Tr¶ lêi: Hai hµm Vlookup vµ Hlookup cho phÐp t×m kiÕm chÝnh x¸c néi dung trong mét b¶ng cã thø tù hay kh«ng cã thø tù, tïy thuéc vµo trÞ th«ng sè ®îc truyÒn cho nã. ThÝ dô hµm Vlookup cã header nh sau:
VLOOKUP (lookup_value, table_array, col_index_num, range_lookup)
NÕu b¹n cÇn tra trong b¶ng cã thø tù t¨ng dÇn th× b¹n thiÕt lËp th«ng sè range_lookup = TRUE, ngîc l¹i nÕu muèn tra trong b¶ng kh«ng cã thø tù th× b¹n thiÕt lËp th«ng sè range_lookup = FALSE.
Lu ý r»ng kh¸c víi 2 hµm Vlookup vµ Hlookup, hµm Lookup kh«ng cã kh¶ n¨ng t×m kiÕm trªn b¶ng kh«ng cã thø tù. MÆt kh¸c nÕu b¹n muèn tù viÕt cho m×nh c¸c hµm t×m kiÕm, b¹n cã thÓ dïng ng«n ng÷ VBA ®Ó viÕt macro thÓ hiÖn hµm mong muèn.
Hái: Trong Excel, khi më mét b¶ng tÝnh, cã mét sè cét kh«ng hiÖn ra trªn mµn h×nh mÆc dï c¸c c«ng thøc cã trong b¶ng tÝnh ®Òu cã chøa gi¸ trÞ cña cét ®ã vµ hµng t¬ng øng. Em lµm theo mäi c¸ch nhng vÉn kh«ng thÓ nµo cho cét ®ã xuÊt hiÖn trë l¹i, vËy cã c¸ch nµo lµm chóng xuÊt hiÖn l¹i?
Tr¶ lêi: Trong Excel, b¹n cã thÓ dÊu mét hay nhiÒu cét cña b¶ng tÝnh b»ng c¸ch chän chóng råi thi hµnh chøc n¨ng Format/ Column/ Hide. §Ó giÊu c¸c cét nµy, Excel chØ lµm ®éng t¸c rÊt ®¬n gi¶n: thiÕt lËp ®é réng cña chóng b»ng 0. Do ®ã ®Ó giÊu c¸c cét, b¹n còng cã thÓ thiÕt lËp trùc tiÕp ®é réng cña chóng vÒ 0. NÕu muèn hiÓn thÞ l¹i c¸c cét bÞ Èn, b¹n cã thÓ dïng mét trong 2 c¸ch sau :
- Chän c¸c cét tr¸i vµ ph¶i cña mét hay nhiÒu cét bÞ dÊu, thùc hiÖn lÖnh Format/ Column/ Unhide.
- Chän c¸c cét tr¸i vµ ph¶i cña mét hay nhiÒu cét bÞ dÊu, thùc hiÖn lÖnh Format/ Column/ Width råi nhËp mét gi¸ trÞ kh¸c kh«ng (thÝ dô nh 10).
Hái: Ph¬ng ph¸p ®Ó viÕt mét hµm riªng trong b¶ng tÝnh Excel 97? Em muèn cã 1 hµm dÞch sè sang ch÷ hoÆc lµm b»ng h×nh thøc nµo ®ã ®Ó dÞch ®îc. ThÝ dô: Sè 1.250 dÞch thµnh mét ngµn hai tr¨m n¨m m¬i ®ång?
Tr¶ lêi: Trong b¶ng tÝnh Excel 97, b¹n cã thÓ dïng macro ®Ó viÕt mét hay nhiÒu hµm riªng cho m×nh, sau ®ã g¸n macro cÇn ch¹y víi tæ hîp phÝm hay víi mét nót nµo ®ã. Macro trong Excel 97 lµ mét thñ tôc (subroutine) ®îc viÕt b»ng ng«n ng÷ Visual Basic for Applications. ThÝ dô sau lµ macro chuyÓn gi¸ trÞ sè cña « ®ang chän sang d¹ng chuçi ký tù råi hiÓn thÞ chuçi nµy trong mét khung héi tho¹i.
‘ Khai bao du lieu
Dim chuso(1 To 10) As String
Dim chu_cach(1 To 4) As String
Dim socandich As Long
‘ Macro doi so sang trang chu
Sub doiso_chu()
Dim ketqua As String
Dim socandoi As Long
Khoidongthongso
socandoi = Int(ActiveCell.Value) ‘ Lay phan nguyen
ketqua = str(socandoi) + " duoc doc la : " + so2chu(socandoi)
MsgBox (ketqua)
End Sub
‘———————————————————————————————
‘ Khoi dong cac trang du lieu chu duoc dung trong chuong trinh
‘———————————————————————————————
Private Sub Khoidongthongso()
chu_cach(1) = "ty"
chu_cach(2) = "ngan"
chu_cach(3) = "trieu"
chuso(1) = "mot"
chuso(2) = "hai"
chuso(3) = "ba"
chuso(4) = "bon"
chuso(5) = "nam"
chuso(6) = "sau"
chuso(7) = "bay"
chuso(8) = "tám"
chuso(9) = "chin"
End Sub
‘——————————————————————————————
‘ Ham doi mot so co toi da 3 ky so thanh trang chu tuong ung
‘——————————————————————————————
Private Function sotram2chu(socandoi As Integer) As String
Dim shangchuc, shangtram, shangdonvi As Integer
Dim str As String
str = ""
‘ Kiem tra so co hop le khong
If socandoi >= 1000 Then
sotram2chu = "???"
Exit Function
End If
‘ Tim 3 ky so mieu ta hang tram, hang chuc va hang don vi
shangtram = socandoi/00
socandoi = socandoi Mod 100
shangchuc = socandoi/10
shangdonvi = socandoi Mod 10
If shangtram >= 1 Then
str = chuso(shangtram) + " tram"
End If
If shangchuc >= 2 Then
str = str + " " + chuso(shangchuc) + " muoi"
ElseIf shangchuc = 1 Then
str = str + " muoi"
End If
If shangdonvi = 0 Then
sotram2chu = str
Exit Function
End If
If shangchuc = 0 Then
If shangtram <> 0 Then
str = str + " le " + chuso(shangdonvi)
Else
str = str + " " + chuso(shangdonvi)
End If
sotram2chu = str
Exit Function
End If
If shangchuc = 1 Then
If shangdonvi <> 5 Then
str = str + " " + chuso(shangdonvi)
Else
str = str + " lam"
End If
sotram2chu = str
Exit Function
End If
If shangdonvi = 1 Then
str = str + " mot"
ElseIf shangdonvi = 5 Then
str = str + " lam"
Else
str = str + " " + chuso(shangdonvi)
End If
sotram2chu = str
End Function
‘——————————————————————————————
‘ Ham doi mot so nguyen bat ky thanh trang chu tuong ung
‘——————————————————————————————
Private Function so2chu(socandoi As Long) As String
Dim idx As Integer
Dim ba_kyso As Integer
Dim str, str_tram As String
Dim tu_ngan_cach As String
idx = 0 ‘ vi tri dau cham phan cach tung 3 ky so
str = ""
str_tram = ""
While socandoi <> 0
ba_kyso = socandoi Mod 1000
socandoi = socandoi/1000
str_tram = sotram2chu(ba_kyso) ‘nen bo cac khoang trong dan dau
If idx = 0 Then ‘ vi tri don vi
str = str_tram
ElseIf Len(str_tram) <> 0 Then ‘vi tri ngan, trieu, ty
tu_ngan_cach = chu_cach((idx Mod 3) + 1)
str = str_tram + " " + tu_ngan_cach + " " + str
ElseIf (idx Mod 3) = 0 Then
str = "ty " + str
End If
idx = idx + 1
Wend
so2chu = str
End Function
Hái: Trong Excel 7.0, ®Ó t¹o mét macro cã vßng lÆp loop, t«i cã sö dông lÖnh IF xong thö Macro qua tõng bíc (Step) thÊy m¸y kh«ng thùc hiÖn ®îc lÖnh IF nh t«i mong muèn (cô thÓ lµ kh«ng ph©n biÖt ®îc "False Value"). Toµn bé có ph¸p Macro Êy nh sau (Excel 4.0 macro):
= Select ("R1C1")
= For ("Counter", 1, 10)
= Select ("R[1]C")
= IF ("R[1]C" = "R5c5")
= Copy ("R[1]C")
= Paste ("R15C1")
= End.IF()
= Next ()
= Return ()
NÕu Macro trªn lµ kh«ng ®óng có ph¸p vËy khi t«i muèn t¹o mét Macro b»ng ng«n ng÷ "Excel 4.0 macro" víi môc ®Ých t×m trong mét cét ®· ®Þnh (vÝ dô C1) c¸c dßng (mÈu tin) cã gi¸ trÞ b»ng mét « ®· ®Þnh (vÝ dô « R5C5) vµ copy c¸c dßng nµy vµo chç riªng th× lµm thÕ nµo?
Tr¶ lêi: Ng«n ng÷ macro Excel 4.0 ®· lçi thêi. Tõ Excel 5.0 trë lªn b¹n cã thÓ viÕt macro b»ng ng«n ng÷ VBA (Visual Basic for Applications). Ng«n ng÷ VBA lµ ng«n ng÷ chuÈn cña Microsoft vµ hÇu hÕt c¸c øng dông cña Microsoft ®Òu hç trî nã. ThÝ dô muèn t×m 10 « ®Çu cña cét 1 ë Sheet1, nÕu cã « nµo b»ng trÞ tham kh¶o ë « C1 th× copy nã sang hµng t¬ng øng ë cét 2, b¹n cã thÓ t¹o mét macro Excel chøa thñ tôc VBA sau:
Sub SearchCopy()
For Row = 1 To 10
If Application.Cells(Row, 1).Value = Application.Cells(1, 3).Value Then
Application.Cells(Row, 2).Value = Application.Cells(Row, 1).Value
End If
Next Row
End Sub
Tõ Sheet1 cña Workbook hiÖn hµnh, b¹n nhËp 10 trÞ vµo 10 « ®Çu ë cét 1, nhËp trÞ tham kh¶o vµo « ®Çu ë cét 3, chän menu Insert/ Macro/ Module råi nhËp thñ tôc VBA trªn vµo cöa sæ trèng.
Sau khi nhËp xong, b¹n chän button Sheet1 ®Ó trë vÒ b¶ng chøa d÷ liÖu. §Ó ch¹y macro tõ Sheet1, b¹n chän menu Tools/ Macro/ SearchCopy/ Run, kÕt qu¶ sÏ hiÓn thÞ ngay ë cét 2.
Hái: Trong b¶ng tÝnh Excel (Office 97), khi muèn cã nhiÒu dßng trong mét « (cell) th× dïng tæ hîp phÝm Alt+Enter. Cã c¸ch nµo ®Ó c¸c dßng ®îc dµn ®Òu trong « (nh Alignment Justify trong Word) kh«ng? (V× trong Excel chØ cã Left, Right, Center)
Tr¶ lêi: NÕu b¹n muèn chØnh d¹ng v¨n b¶n ë chÕ ®é Justify trong tõng « cña b¶ng tÝnh Excel th× b¹n kh«ng ®îc dïng tæ hîp Alt-Enter ®Ó c¾t hµng b»ng tay nh b¹n ®· lµm. Thùc vËy, b¹n ph¶i nhËp d÷ liÖu liªn tôc cho ®Õn hÕt. MÆc ®Þnh, d÷ liÖu sÏ ®îc hiÓn thÞ ngang trªn mét hµng (cã thÓ rÊt dµi vµ bÞ che khuÊt bëi d÷ liÖu cña cét bªn ph¶i). B©y giê ®Ó chØnh d¹ng theo chÕ ®é Justify cho « võa nhËp, b¹n chän thùc ®¬n Format.Cells.Alignment, vµ chän Justify trong hép Horizontal råi nhÊn OK.
Hái: T«i ®ang dïng font ch÷ ViÖt ABC. Khi sö dông trong Excel th× mét sè font bÞ lçi, vÝ dô nh font .VnTime khi gâ 'ngµi' th× ra 'ngoi', gâ '®·' th× ra 'do'. Mét sè font kh¸c l¹i kh«ng bÞ.
Tr¶ lêi: NÕu b¹n ch¾c ch¾n chØ cã mét sè font bÞ lçi cßn c¸c font ABC kh¸c vÉn hiÓn thÞ ®óng cïng néi dung nhËp vµo th× lçi lµ do font ®ã bÞ h hay kh«ng ®óng m·. Trong trêng hîp nµy b¹n nªn xãa font bÞ lçi råi cµi l¹i nã tõ ®Üa gèc xem sao.
Hái: C«ng viÖc cña t«i yªu cÇu thÓ hiÖn trong b¶ng tÝnh c¶ phÐp tÝnh vµ kÕt qu¶ cña phÐp tÝnh ®ã, v× vËy t«i vÉn ph¶i lµm theo c¸ch thñ c«ng lµ nhËp phÐp tÝnh vµo mét cell (vÝ dô:2*3+5=) sau ®ã sao phÐp tÝnh nµy sang mét cell bªn c¹nh, råi xãa dÊu "=" ë cuèi phÐp tÝnh vµ ®iÒn dÊu "=" lªn ®Çu phÐp tÝnh ®Ó cã kÕt qu¶. §Ò nghÞ cho biÕt trong ch¬ng tr×nh Excel cã lÖnh hoÆc c«ng cô nµo gióp ngêi sö dông lÊy nhanh kÕt qu¶ cña phÐp tÝnh víi ®iÒu kiÖn vÉn ph¶i thÓ hiÖn c¶ phÐp tÝnh vµ kÕt qu¶ cña phÐp tÝnh trong b¶n in ra kh«ng?
Tr¶ lêi: §Ó gi¶i quyÕt vÊn ®Ò cña b¹n, b¹n cã thÓ nhËp c«ng thøc theo có ph¸p riªng cña b¹n vµo mét cét, Excel sÏ coi ®©y nh lµ chuçi ký tù b×nh thêng. NÕu cã mét macro viÕt s½n cã nhiÖm vô ®äc tõng « chøa c«ng thøc cña b¹n, dêi dÊu "=" tõ cuèi chuçi vÒ ®Çu chuçi råi ghi c«ng thøc míi vµo « t¬ng øng ë cét bªn ph¶i th× kÕt qu¶ cña c«ng thøc sÏ ®îc hiÓn thÞ. Macro tinhcongthuc sau ®©y sÏ gi¶i quyÕt vÊn ®Ò cña b¹n. Qui tr×nh t¹o macro vµ kÕt hîp nã víi mét nót lÖnh ®Ó b¹n dÔ truy xuÊt nã nh sau:
- Chän thùc ®¬n Tools.Macro .Macros, nhËp tªn macro cÇn t¹o (thÝ dô tinhcongthuc) vµo môc Macro Name råi chän Create. Tr×nh Visual Basic sÏ ch¹y vµ hiÓn thÞ khung thñ tôc ®Ó nhËp vµo.
- NhËp c¸c lÖnh sau vµo th©n cña thñ tôc tinhcongthuc:
Sub tinhcongthuc()
Dim a, b As String
For Each c In Selection.Cells
a = c.Value
b = Right(a, 1)
If b = ‘=’ Then
a = Left(a, Len(a) - 1)
c.Offset(0, 1).Value = b+a
Else
c.Offset(0, 1).Value = ‘Error’
End If
Next
End Sub
- Chän thùc ®¬n View .Toolbars.Customize, chän nót Command.Macros. KÐo nót Custom button ®Õn mét vÞ trÝ nµo ®ã trªn mét thanh c«ng cô cña Excel. NhÊn phÝm ph¶i vµo nót võa t¹o, chän Edit button Image trong thùc ®¬n xuÊt hiÖn ®Ó thay ®æi h×nh d¹ng ®å häa cña nót. Chän Assign macro ®Ó liªn kÕt nót víi macro tinhcongthuc. Sau cïng, chän Name ®Ó hiÖu chØnh tªn nhËn d¹ng cña nót.
B©y giê b¹n ®· cã mét nót macro míi víi c¸ch dïng nh sau :
- NhËp mét hay nhiÒu c«ng thøc theo có ph¸p riªng cña b¹n vµo mét cét, Excel sÏ xem ®©y nh lµ chuçi ký tù b×nh thêng.
- Chän c¸c c«ng thøc võa nhËp.
- NhÊn nót tinhcongthuc, c¸c lÖnh trong macro sÏ ®îc thi hµnh vµ b¹n sÏ cã kÕt qu¶ cña c¸c c«ng thøc bªn cét ngay bªn ph¶i. Lu ý viÖc tÝnh c«ng thøc kh«ng thÓ tù ®éng ®îc, do ®ã nÕu cã sù thay ®æi vÒ c«ng thøc cña b¹n, b¹n ph¶i thùc hiÖn l¹i bíc nµy ®Ó Excel tÝnh l¹i kÕt qu¶.
Tïy yªu cÇu, b¹n cã thÓ hiÖu chØnh l¹i gi¶i thuËt cña macro b»ng thùc ®¬n Tools.Macro.Macros chän macro cÇn hiÖu chØnh råi nhÊn nót Edit. Cöa sæ MS Visual Basic chøa m· lÖnh cña macro sÏ hiÖn lªn ®Ó b¹n hiÖu chØnh.
Hái: Trong qu¸ tr×nh khai th¸c sö dông c¸c c«ng cô trong Excel t«i cã nhu cÇu sao chÐp c«ng thøc theo dßng/cét. Nhng hiÖn t«i chØ míi sö dông ®îc sao chÐp tham chiÕu theo dßng/cét, chøc n¨ng ®Þa chØ t¬ng ®èi theo dßng/cét hoÆc ®Þa chØ tuyÖt ®èi. Trêng hîp cÇn tham chiÕu réng h¬n th× ph¶i thùc hiÖn nh thÕ nµo?
- Trong Excel t«i míi chØ thùc hiÖn ®îc hµm if vµ mét sè hµm kh¸c ®Ó t×m kiÕm theo dßng/cét (ch¼ng h¹n: nÕu « A1 cña sheet 2 b»ng « A1 cña sheet 1 th× « B1 cña sheet 2 b»ng « B1 cña sheet 1...) chø cha thùc hiÖn ®îc yªu cÇu t×m kiÕm toµn bé cét A cho ®Õn khi tháa m·n ®iÒu kiÖn.
Tr¶ lêi: Trong Excel, b¹n cã thÓ tham kh¶o néi dung cña mét hay nhiÒu « kh¸c theo nhiÒu møc ®é kh¸c nhau nh:
- Tham kh¶o ®Õn « côc bé trªn cïng Worksheet: chØ cÇn miªu t¶ dßng vµ cét cña « cÇn tham kh¶o. VÝ dô nÕu dïng có ph¸p miªu t¶ « d¹ng A1, th× ®Ó tham kh¶o « ë cét C dßng 5 th× ta viÕt C5 (®Þa chØ t¬ng ®èi) hay $C$5 (®Þa chØ tuyÖt ®èi).
- Tham kh¶o ®Õn « cña worksheet kh¸c trong cïng mét workbook: miªu t¶ tªn worksheet, dßng vµ cét cña « cÇn tham kh¶o. VÝ dô nÕu dïng có ph¸p miªu t¶ « d¹ng A1, ®Ó tham kh¶o « ë cét C dßng 5 cña worksheet tªn lµ dulieunhap th× ta viÕt dulieunhap!C5 (®Þa chØ t¬ng ®èi) hay dulieunhap!$C$5 (®Þa chØ tuyÖt ®èi).
- Tham kh¶o ®Õn « cña worksheet kh¸c cña mét workbook kh¸c: miªu t¶ tªn workbook, tªn worksheet, dßng vµ cét cña « cÇn tham kh¶o.
VÝ dô nÕu dïng có ph¸p miªu t¶ « d¹ng A1, th× ®Ó tham kh¶o « ë cét C dßng 5 cña worksheet tªn lµ dulieunhap trong workbook tªn lµ datafile.xls th× ta viÕt [datafile]dulieunhap!C5 (®Þa chØ t¬ng ®èi) hay [datafile] dulieunhap!$C$5 (®Þa chØ tuyÖt ®èi).
§Ó t×m kiÕm « cã néi dung nµo ®ã theo dßng/cét cña b¶ng tÝnh, b¹n nªn t¹o mét macro víi ph¸t biÓu lÆp nh For, Do, While,... theo cét/hµng.
Hái: Ch¬ng tr×nh Excel cña Office 97 trong thùc ®¬n Data cã lÖnh Table. T«i kh«ng biÕt sö dông ra sao tuy ®· cã t×m hiÓu qua ch¬ng tr×nh trî gióp còng nh t×m c¸c s¸ch vÒ Excel nhng kh«ng thÊy nãi vÒ lÖnh nµy. Xin cho biÕt c«ng dông, c¸ch sö dông vµ vÝ dô minh häa.
Tr¶ lêi: Thùc ®¬n Data.Table cña ch¬ng tr×nh Excel 97 cho phÐp b¹n
tÝnh c¸c gi¸ trÞ cña mét hµm hai biÕn hay nhiÒu hµm mét biÕn theo
c¸c trÞ cña biÕn ®ã. VÝ dô b¹n cã mét hµm hai biÕn f(x, y) nµo
®ã (b¹n ®· biÕt c«ng thøc cña hµm) vµ muèn tÝnh trÞ hµm ®ã theo
c¸c trÞ cña x, y, b¹n cã thÓ tiÕn hµnh c¸c bíc sau :
- Chän mét cell ®¹i diÖn gi¸ trÞ x (vÝ dô lµ A1)
- Chän mét cell ®¹i diÖn gi¸ trÞ y (vÝ dô lµ B1)
- NhËp c«ng thøc cña hµm hai biÕn f(x, y) vµo mét cell kh¸c (vÝ dô
lµ B2) víi c¸c biÕn x, y ®îc thay b»ng c¸c ®Þa chØ cell ®¹i
®iÖn t¬ng øng (nghÜa lµ A1 vµ B1). Lu ý, c«ng thøc b¾t ®Çu
b»ng dÊu "=".
- NhËp d·y c¸c trÞ x cÇn dïng ®Ó tÝnh trÞ hµm vµo cïng hµng víi
cell c«ng thøc vµ tõ cell nµy qua ph¶i (tõ C2)
- NhËp d·y c¸c trÞ y cÇn dïng ®Ó tÝnh trÞ hµm vµo cïng cét víi
cell c«ng thøc vµ tõ cell nµy trë xuèng (tõ B3)
- Chän khèi ch÷ nhËt cã ®Ønh trªn tr¸i lµ cell c«ng thøc vµ hai
c¹nh lµ phÇn hµng cét chøa c¸c trÞ x, y
- Chän thùc ®¬n Data.Table, nhËp ®Þa chØ cell ®¹i diÖn biÕn x vµo
hép Row input cell vµ ®Þa chØ cell ®¹i ®iÖn biÕn y vµo hép Column
input cell, råi OK.
B¹n sÏ cã ®îc mét b¶ng gi¸ trÞ cña hµm sè t¬ng øng víi tõng
cÆp trÞ x,y.
Hái: Khi lµm viÖc trong b¶ng tÝnh Excel, trêng hîp c¸c c«ng thøc trong b¶ng kh«ng thùc hiÖn ®îc th× hiÖn c©u th«ng b¸o lçi. VÝ dô c«ng thøc chia cho 0 sÏ hiÖn #DIV/0! - xem b¶ng)

VËy cã c¸ch nµo lµm cho c©u th«ng b¸o trªn khi in kh«ng hiÖn ra ®îc kh«ng? §iÒu kiÖn c«ng thøc ®ã vÉn gi÷ nguyªn kh«ng xãa ®i, cã nghÜa lµ chØ lµm Èn kh«ng cho in ra mµ th«i).
Tr¶ lêi: NÕu doanh thu th¸ng 4 n»m ë cét B vµ doanh thu th¸ng 5 n»m ë cét C th× c«ng thøc so s¸nh n»m ë cét D lµ =C2/B2. Tuy nhiªn c«ng thøc nµy kh«ng ph¶i lóc nµo còng cho kÕt qu¶ ®óng, vÒ mÆt to¸n häc nÕu mÉu sè cña phÐp chia b»ng 0 th× c«ng thøc trªn sÏ v« ®Þnh vµ Excel sÏ b¸o lçi "#DIV/0!". §Ó tr¸nh viÖc hiÓn thÞ (vµ in ra) lçi sai trªn, b¹n nªn söa c«ng thøc trªn thµnh c«ng thøc phøc t¹p h¬n nh sau:
=IF(B2<>0,C2/B2,"").
Víi c«ng thøc míi, ta kiÓm tra mÉu sè tríc, nÕu kh¸c kh«ng th× dïng c«ng thøc cò, cßn nÕu mÉu sè b»ng 0 ta sÏ ®Ó trèng kÕt qu¶.
Hái: 1/ T«i muèn lËp mét Macro trong Excel 97 ®Ó vÏ c¸c ®å thÞ cã c¸c vïng sè liÖu kh¸c nhau vµ cã sè phÇn tö thay ®æi. V× vËy t«i ®· thay ®æi miÒn gi¸ trÞ cña SourceData b»ng c¸ch ®a vµo c¸c biÕn sè. Tuy nhiªn khi t«i khai b¸o:
ActiveChart.SetSourceData Source:=Sheets ("Do thi"). Range("A24: H48"),
PlotBy:=_xlColumns
th× m¸y kh«ng b¸o lçi, nhng khi t«i thay ®æi c¸ch khai b¸o, ®Ó ®a c¸c biÕn sè vµo:
Source:=Sheets("Do thi"). Range(Cells(24*m,2),Cells(24*(m+1), 2+songuon)),_
PlotBy:=xlColumns
m¸y còng b¸o lçi:
Run-time error ‘1004’:
Method ‘Range’ of subject ‘_Global’ failed
T«i dïng Help th× thÊy dßng th«ng b¸o sau xuÊt hiÖn:
The topic does not exit
Contact your application vender for an updated hel file.
ThËm chÝ khi t«i ®· khai b¸o l¹i, kh«ng cho c¸c biÕn sè vµo n÷a nh sau:
ActiveChart.SetSourceDataSource:= Sheets("Dothi").Range(Cells(24, 2), Cells(48, 8),
PlotBy:=_xlColumns
th× m¸y vÉn b¸o lçi nh trªn. T«i kh«ng hiÓu m×nh ®· m¾c lçi g× trong khai b¸o Source cña ®å thÞ hay lµ hiÖn thêi Excel kh«ng cho phÐp khai b¸o nh t«i ®· lµm vµ nÕu nh vËy cã c¸ch nµo ®Ó kh¾c phôc hay kh«ng. §©y lµ mét phÇn Macro vÏ ®å thÞ mµ t«i ®· viÕt :
for m=1 to sothang
Set dothi = Sheets("Do thi").ChartObjects.Add(243 * (m - 1), 512, 243,
512)
dothi.Activate
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceData
Source:=Sheets("Do thi").Range(Cells(24*m, 2), Cells(24*(m+1),
2+songuon)),_
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Do thi"
next m
Tr¶ lêi: Lu ý r»ng "Cells" lµ mét method (hay thuéc tÝnh) cña ®èi tîng, do ®ã b¹n nªn miªu t¶ râ rµng tªn cña ®èi tîng mµ b¹n cÇn truy xuÊt tríc method Cells. Tãm l¹i thñ tôc vÏ nhiÒu ®å thÞ cña b¹n cã thÓ viÕt l¹i nh sau :
Dim sothang As Integer
Dim songuon As Integer
Sub vedothi()
sothang = 12
songuon = 3
For m = 1 To sothang
Set dothi = Sheets("Do thi").ChartObjects.Add(243 * (m - 1), 512, 243,
512)
dothi.Activate
ActiveChart.ChartType = xlColumnStacked
Set sRange = Sheets("Do thi").Cells(24*m, 2)
Set eRange = Sheets("Do thi").Cells(24*(m+1), 2+songuon)
ActiveChart.SetSourceData Source:=Sheets("Do thi").Range(sRange,
eRange), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Do thi"
Next m
End Sub
Víi ®o¹n lÖnh trªn, chóng t«i dïng 2 biÕn sRange vµ eRange ®Ó chøa 2 object miªu t¶ cell ®Çu vµ cuèi cña vïng sè liÖu cÇn cho ®å thÞ. ViÖc dïng 2 biÕn nµy chØ víi môc ®Ých lµm ch¬ng tr×nh dÔ ®äc (lÖnh SetSourceData sÏ gän h¬n vµ râ rµng h¬n).
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com