ExcelVBA±àʵս±à³Ì(ºÜʵÓÃŶ)

ʾÀý02-09£º²ð·Ö´°¸ñ [ʾÀý02-09-01]

Sub SplitWindow1()

Dim iRow As Long, iColumn As Long MsgBox \ÒԻµ¥Ôª¸ñΪ»ù×¼²ð·Ö´°¸ñ\ iRow = ActiveCell.Row

iColumn = ActiveCell.Column With ActiveWindow

.SplitColumn = iColumn .SplitRow = iRow End With

MsgBox \»Ö¸´Ô­À´µÄ´°¿Ú״̬\ ActiveWindow.Split = False End Sub

[ʾÀý02-09-02] Sub SplitWindow()

Dim iRow As Long, iColumn As Long MsgBox \ÒԻµ¥Ôª¸ñΪ»ù×¼²ð·Ö´°¸ñ\ iRow = ActiveCell.Row

iColumn = ActiveCell.Column With ActiveWindow

.SplitColumn = iColumn .SplitRow = iRow End With

MsgBox \»Ö¸´Ô­À´µÄ´°¿Ú״̬\ ActiveWindow.SplitColumn = 0 ActiveWindow.SplitRow = 0 End Sub

ʾÀý˵Ã÷£º±¾Ê¾ÀýÑÝʾÁËÒԻµ¥Ôª¸ñΪ»ù×¼²ð·Ö´°¸ñ¡£Èç¹ûÖ¸¶¨´°¿Ú±»²ð·Ö£¬ÔòSplitÊôÐÔµÄֵΪTrue£»ÉèÖøÃÊôÐÔµÄֵΪFalseÔòÈ¡Ïû´°¸ñ²ð·Ö¡£Ò²¿ÉÒÔÉèÖÃSplitColumnÊôÐÔºÍSplitRowÊôÐÔµÄÖµÀ´È¡Ïû´°¸ñ²ð·Ö¡£

ʾÀý02-10£º¶³½á´°¸ñ(FreezePanesÊôÐÔ) Sub testFreezePane() MsgBox ¡°¶³½á´°¸ñ¡±

ActiveWindow.FreezePanes = True End Sub ʾÀý˵Ã÷£ºÔËÐб¾³ÌÐòºó£¬½«»á¶³½á»î¶¯µ¥Ôª¸ñËùÔÚλÖÃÉÏ·½ºÍ×ó²àµÄµ¥Ôª¸ñÇøÓò¡£½«¸ÃÊôÐÔµÄÖµÉèÖÃΪFalse£¬½«È¡Ïû¶³½á´°¸ñ¡£

ʾÀý02-11£ºÉèÖÃÍø¸ñÏßÑÕÉ«(GridlineColorÊôÐÔºÍGridlineColorIndexÊôÐÔ) Sub setGridlineColor() Dim iColor As Long

iColor=ActiveWindow.GridlineColor

21

MsgBox \½«»î¶¯´°¿ÚµÄÍø¸ñÏßÑÕÉ«ÉèΪºìÉ«\ ActiveWindow.GridlineColor = RGB(255, 0, 0) MsgBox \½«»î¶¯´°¿ÚµÄÍø¸ñÏßÑÕÉ«ÉèΪÀ¶É«\ ActiveWindow.GridlineColorIndex = 5 MsgBox ¡°»Ö¸´ÎªÔ­À´µÄÍø¸ñÏßÑÕÉ«¡±

ActiveWindow.GridlineColorIndex=iColor End Sub

ʾÀý˵Ã÷£ºÔËÐгÌÐòºó£¬µ±Ç°¹¤×÷±í´°¿ÚÍø¸ñÏß½«±»ÉèÖÃΪºìÉ«¡£ÆäÖУ¬GridlineColorIndexÊôÐÔ¿ÉÒÔÓÃÓÚ·µ»Ø»òÉèÖÃÍø¸ñÏßµÄÑÕÉ«£¬ÏÂÃæ¸ø³öÁËĬÈϵ÷É«°åÖÐÑÕÉ«µÄ±àºÅÖµ£º

[С½á]ActiveWindowÊôÐÔ·µ»Øµ±Ç°¼¤»îµÄ¹¤×÷²¾´°¿Ú£¬¿ÉÒÔÓÃÀ´ÉèÖù¤×÷±íÖеÄÔªËØ£¬Ò²¿ÉÒÔÏÔÊ¾ÌØ¶¨µÄµ¥Ôª¸ñ£¬»òÕßÓÃÀ´µ÷Õû´°¿ÚµÄÏÔʾ±ÈÀý£¬ÒÔ¼°ÉèÖô°¿Ú¡£

µÚ¶þÕ ´°¿Ú(Window¶ÔÏó)»ù±¾²Ù×÷Ó¦ÓÃʾÀý(¶þ)

·ÖÀà:ExcelVBA>>ExcelVBA±à³ÌÈëÃÅ·¶Àý ʾÀý02-12£ºÉèÖù¤×÷±í±êÇ©ÇøÓò¿í¶ÈºÍˮƽ¹ö¶¯Ìõ¿í¶È±ÈÀý(TabRatioÊôÐÔ) Sub test()

MsgBox \ÉèÖù¤×÷±í±êÇ©ÇøÓò¿í¶ÈΪˮƽ¹ö¶¯Ìõ¿í¶ÈµÄÒ»°ë\ ActiveWindow.TabRatio = 0.5 End Sub

ʾÀý˵Ã÷£ºTabRatioÊôÐÔ·µ»Ø»òÉèÖù¤×÷²¾Öй¤×÷±í±êÇ©ÇøÓòµÄ¿í¶ÈÓë´°¿Úˮƽ¹ö¶¯ÌõµÄ¿í¶È±ÈÀý(¿ÉΪ0µ½1Ö®¼äµÄÊý×Ö£»Ä¬ÈÏֵΪ0.6£©¡£Äú¿ÉÒԸıäÉÏÃæ³ÌÐòÖеÄÊýÖµ½øÐвâÊÔ¡£

ʾÀý02-13£ºÉèÖü¤»î´°¿ÚʱÔËÐеijÌÐò(OnWindowÊôÐÔ) Sub testRunProcedure()

ThisWorkbook.Windows(1).OnWindow = \End Sub

?********************************************************* Sub test()

MsgBox \Äú¿ÉÒÔʹÓñ¾´°¿ÚÁË!\End Sub

ʾÀý˵Ã÷£º±¾Ê¾Àý°üÀ¨Á½¸ö³ÌÐò£¬Ö÷³ÌÐòΪtestRunProcedure()£¬ÔËÐкó£¬Ã¿µ±

22

¼¤»î¸Ã´°¿Úʱ£¬½«»áÔËÐÐtest()³ÌÐò¡£ÆäÖУ¬OnWindowÊôÐÔ·µ»Ø»òÉèÖÃÿµ±¼¤»îÒ»¸ö´°¿ÚʱҪÔËÐеĹý³ÌµÄÃû³Æ£¬Èç±¾ÀýÖеÄtest()³ÌÐò¡£

ʾÀý02-14£º»ñȡָ¶¨´°¿Úµ¥Ôª¸ñÇøÓòµØÖ·(RangeSelectionÊôÐÔ) Sub testRangeSelection()

MsgBox \ÏÔʾËùÑ¡µ¥Ôª¸ñµØÖ·\

MsgBox ActiveWindow.RangeSelection.Address End Sub

ʾÀý˵Ã÷£º±¾Ê¾Àý·µ»Øµ±Ç°´°¿ÚÖÐËùÑ¡µ¥Ôª¸ñÇøÓòµÄµØÖ·¡£RangeSelectionÊôÐÔ·µ»ØÖ¸¶¨´°¿ÚµÄ¹¤×÷±íÖеÄÑ¡¶¨µ¥Ôª¸ñ(¼´Ê¹Ö¸¶¨¹¤×÷±íÖÐÓÐͼÐζÔÏó´¦Óڻ״̬£¬»òÕßÒÑÑ¡¶¨Í¼ÐζÔÏó£¬ÈÔ·µ»ØÔÚͼÐζÔÏó±»Ñ¡¶¨Ö®Ç°Ñ¡¶¨µÄµ¥Ôª¸ñÇøÓò£¬ÕâÊǸÃÊôÐÔÓëSelectionÊôÐÔµÄÇø±ð)¡£

ʾÀý02-15£º·µ»ØÖ¸¶¨´°¿ÚÖÐËùÑ¡ÔñµÄ¹¤×÷±í(SelectedSheetsÊôÐÔ) Sub testSelectedSheet() Dim sh As Worksheet

For Each sh In ActiveWorkbook.Windows(1).SelectedSheets MsgBox \¹¤×÷±í\& sh.Name & \±»Ñ¡Ôñ\ Next End Sub

ʾÀý˵Ã÷£ºSelectedSheetsÊôÐÔ·µ»Ø´ú±íÖ¸¶¨´°¿ÚÖеÄËùÓÐÑ¡¶¨¹¤×÷±íµÄ¼¯ºÏ¡£±¾Ê¾ÀýÖУ¬Èç¹ûÄúͬʱѡÔñÁ˻¹¤×÷²¾ÖеŤ×÷±íSheet1ºÍSheet2£¬ÄÇôÔËÐгÌÐòºó£¬½«»áÏÔʾÏàÓ¦¹¤×÷±í±»Ñ¡ÔñµÄÐÅÏ¢¡£

ʾÀý02-16£ºÅÅÁд°¿Ú(Arrange·½·¨) Sub testArrangeWindows()

MsgBox \ÇëÈ·±£Ó¦ÓóÌÐòÖÁÉÙº¬ÓÐÁ½¸ö¹¤×÷²¾,ÕâÑù²ÅÄÜ¿´³öЧ¹û\ MsgBox ¡°´°¿Ú½«Æ½ÆÌÏÔʾ¡±

Windows.Arrange ArrangeStyle:=xlArrangeStyleTiled MsgBox ¡°´°¿Ú½«²ãµþÏÔʾ¡±

Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade MsgBox ¡°´°¿Ú½«Ë®Æ½ÅÅÁÐÏÔʾ¡±

Windows.Arrange ArrangeStyle:=xlArrangeStyleHorizontal MsgBox ¡°´°¿Ú½«´¹Ö±²¢ÅÅÅÅÁÐÏÔʾ¡±

Windows.Arrange ArrangeStyle:=xlArrangeStyleVertical End Sub

ʾÀý˵Ã÷£ºÔËÐб¾³ÌÐòºó£¬½«Æ½ÆÌÓ¦ÓóÌÐòÖеÄËùÓд°¿Ú¡£Arrange·½·¨ÓÃÓÚ¶ÔÆÁÄ»ÉϵĴ°¿Ú½øÐÐÅÅÁУ¬ÆäÓ﷨Ϊexpression.Arrange(ArrangeStyle, ActiveWorkbook, SyncHorizontal, SyncVertical)£¬ËùÓеIJÎÊý¾ùΪ¿ÉÑ¡²ÎÊý¡£ÆäÖУ¬²ÎÊýArrangeStyle´ú±íÅÅÁÐÑùʽ£¬¿ÉΪÒÔϳ£Á¿£º³£Á¿xlArrangeStyleTiledΪȱʡֵ£¬±íʾ½«Æ½ÆÌ´°¿Ú£»³£Á¿xlArrangeStyleCascade±íʾ½«´°¿Ú½øÐвãµþ£»³£Á¿xlArrangeStyleHorizontal±íʾ½«Ë®Æ½ÅÅÁÐËùÓд°¿Ú£»³£Á¿xlArrangeStyleVertical±íʾ½«´¹Ö±²¢ÅÅÅÅÁÐËùÓд°¿Ú¡£Äú¿ÉÒÔÔÚÉÏÃæµÄ³ÌÐòÖвâÊÔÕâЩ³£Á¿£¬ÒÔÌåÑéЧ¹û¡£½«²ÎÊýActiveWorkbookÉèÖÃΪTrue£¬ÔòÖ»¶Ôµ±Ç°¹¤×÷²¾µÄ¿É¼û´°¿Ú½øÐÐÅÅÁС£

23

Èç¹ûΪFalse£¬Ôò¶ÔËùÓд°¿Ú½øÐÐÅÅÁС£Ä¬ÈÏֵΪ False¡£ÉèÖòÎÊýSyncHorizontalΪTrue£¬ÔÚˮƽ¹ö¶¯Ê±Í¬²½¹ö¶¯µ±Ç°¹¤×÷²¾µÄËùÓд°¿Ú£»Èç¹ûΪ False£¬Ôò²»Í¬²½¹ö¶¯¡£ÉèÖòÎÊýSyncVerticalΪTrue£¬ÔòÔÚ´¹Ö±¹ö¶¯Ê±Í¬²½¹ö¶¯µ±Ç°¹¤×÷²¾µÄËùÓд°¿Ú£»Èç¹ûΪ False£¬Ôò²»Í¬²½¹ö¶¯£¬Ä¬ÈÏֵΪ False¡£Èç¹û²ÎÊýActiveWorkbookΪFalse»òÕßÊ¡ÂÔ£¬Ôò²ÎÊýSyncHorizontalºÍSyncVertical±»ºöÂÔ¡£

ʾÀý02-17£º´°¿Ú³ß´ç(UsableHeight¡¢UsableWidth¡¢Height¡¢WidthÊôÐÔ) Sub testActiveWindowSize()

MsgBox \µ±Ç°´°¿Ú¿ÉÓÃÇøÓòµÄ¸ß¶ÈΪ:\& ActiveWindow.UsableHeight MsgBox \µ±Ç°´°¿ÚµÄ¸ß¶ÈΪ:\& ActiveWindow.Height

MsgBox \µ±Ç°´°¿Ú¿ÉÓÃÇøÓòµÄ¿í¶ÈΪ:\& ActiveWindow.UsableWidth MsgBox \µ±Ç°´°¿ÚµÄ¿í¶ÈΪ:\& ActiveWindow.Width End Sub

ʾÀý02-18£ºË®Æ½ÅÅÁÐÁ½¸ö´°¿Ú Sub testWindowArrange()

Dim ah As Long, aw As Long

Windows.Arrange xlArrangeStyleTiled ah = Windows(1).Height

aw = Windows(1).Width + Windows(2).Width With Windows(1) .Width = aw

.Height = ah / 2 .Left = 0 End With

With Windows(2) .Width = aw

.Height = ah / 2 .Top = ah / 2 .Left = 0 End With End Sub

ʾÀý˵Ã÷£ºÔÚÔËÐб¾Ê¾Àýǰ£¬±£Ö¤Ö»´ò¿ªÁËÁ½¸ö¹¤×÷²¾´°¿Ú¡£ÔËÐб¾Ê¾Àýºó£¬½«Ë®Æ½ÅÅÁеÚÒ»¸ö´°¿ÚºÍµÚ¶þ¸ö´°¿Ú£¬¼´Ã¿¸ö´°¿ÚÕ¼ÓÿÉʹÓõĴ¹Ö±¿Õ¼äµÄÒ»°ë£¬Õ¼ÓÃËùÓÐˮƽ¿Õ¼ä¡£ÆäÖУ¬TopÊôÐÔ±íʾ´Ó´°¿Ú¶¥¶Ëµ½¿ÉÓÃÇøÓò¶¥¶ËµÄ¾àÀ룬ÎÞ·¨¶Ô×î´ó»¯µÄ´°¿ÚÉèÖñ¾ÊôÐÔ£»LeftÊôÐÔ±íʾʹÓÃÇøÓòµÄ×ó±ß½çÖÁ´°¿Ú×ó±ß½çµÄ¾àÀ룬Èç¹û´°¿ÚÒÑ×î´ó»¯£¬Ôò»á·µ»ØÒ»¸ö¸ºÊý£»Èç¹û¸ÃÊôÐÔ±»ÉèÖÃΪ0£¬Ôò´°¿ÚµÄÖ÷±ß¿ò¸ÕºÃÔÚÆÁÄ»ÉϿɼû¡£

ʾÀý02-19£º¸Ä±ä´°¿ÚµÄ¸ß¶ÈºÍ¿í¶È Sub ChangeHeightAndWidth()

Dim iWinHeight As Long, iWinWidth As Long ActiveWindow.WindowState = xlNormal

24

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)