ExcelVBA±à³ÌʵÀý£¨150Àý£© - ͼÎÄ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕÂExcelVBA±à³ÌʵÀý£¨150Àý£© - ͼÎĸüÐÂÍê±Ï¿ªÊ¼ÔĶÁ0a8ac20876c66137ee061985

If ActiveWorkbook.ReadOnly Then

MsgBox \±¾¹¤×÷²¾ÒѾ­ÊÇÒÔÖ»¶Á·½Ê½´ò¿ª\ Else

MsgBox \±¾¹¤×÷²¾¿É¶Áд.\ End If

If ActiveWorkbook.Saved Then MsgBox \±¾¹¤×÷²¾Òѱ£´æ.\ Else

MsgBox \±¾¹¤×÷²¾ÐèÒª±£´æ.\ End If End Sub

ʾÀý03-12£º·ÃÎʹ¤×÷²¾µÄÄÚÖÃÊôÐÔ(BuiltinDocumentPropertiesÊôÐÔ) [ʾÀý03-12-01]

Sub ShowWorkbookProperties() Dim SaveTime As String On Error Resume Next

SaveTime = ActiveWorkbook.BuiltinDocumentProperties(\\

If SaveTime = \

MsgBox ActiveWorkbook.Name & \¹¤×÷²¾Î´±£´æ.\ Else

MsgBox \±¾¹¤×÷²¾ÒÑÓÚ\±£´æ\ End If End Sub

ʾÀý˵Ã÷£ºÔÚExcelÖÐÑ¡Ôñ²Ëµ¥¡°Îļþ¡ª¡ªÊôÐÔ¡±ÃüÁîʱ½«»áÏÔʾһ¸ö¡°ÊôÐÔ¡±¶Ô»°¿ò£¬¸Ã¶Ô»°¿òÖаüº¬Á˵±Ç°¹¤×÷²¾µÄÓйØÐÅÏ¢£¬¿ÉÒÔÔÚVBAÖÐʹÓÃBuiltinDocumentPropertiesÊôÐÔ·ÃÎʹ¤×÷²¾µÄÊôÐÔ¡£ÉÏÊöʾÀý´úÂ뽫ÏÔʾµ±Ç°¹¤×÷²¾±£´æʱµÄÈÕÆÚºÍʱ¼ä¡£ [ʾÀý03-12-02]

Sub listWorkbookProperties() On Error Resume Next

'ÔÚÃûΪ\¹¤×÷²¾ÊôÐÔ\µÄ¹¤×÷±íÖÐÌí¼ÓÐÅÏ¢,Èô¸Ã¹¤×÷±í²»´æÔÚ,Ôòн¨Ò»¸ö¹¤×÷±í

Worksheets(\¹¤×÷²¾ÊôÐÔ\ If Err.Number <> 0 Then

Worksheets.Add after:=Worksheets(Worksheets.Count) ActiveSheet.Name = \¹¤×÷²¾ÊôÐÔ\ Else

ActiveSheet.Clear End If

On Error GoTo 0 ListProperties End Sub

33

¡®- - - - - - - - - - - - - - - - - - - - - - - Sub ListProperties() Dim i As Long

Cells(1, 1) = \Ãû³Æ\ Cells(1, 2) = \ÀàÐÍ\ Cells(1, 3) = \Öµ\

Range(\ With ActiveWorkbook

For i = 1 To .BuiltinDocumentProperties.Count With .BuiltinDocumentProperties(i) Cells(i + 1, 1) = .Name Select Case .Type

Case msoPropertyTypeBoolean Cells(i + 1, 2) = \ Case msoPropertyTypeDate Cells(i + 1, 2) = \ Case msoPropertyTypeFloat Cells(i + 1, 2) = \ Case msoPropertyTypeNumber Cells(i + 1, 2) = \ Case msoPropertyTypeString Cells(i + 1, 2) = \ End Select

On Error Resume Next

Cells(i + 1, 3) = .Value On Error GoTo 0 End With Next i End With

Range(\End Sub

ʾÀý˵Ã÷£º±¾Ê¾Àý´úÂëÔÚ¡°¹¤×÷²¾ÊôÐÔ¡±¹¤×÷±íÖÐÁгöÁ˵±Ç°¹¤×÷²¾ÖеÄËùÓÐÄÚÖÃÊôÐÔ¡£

ʾÀý03-13£º²âÊÔ¹¤×÷²¾ÖÐÊÇ·ñ°üº¬Ö¸¶¨¹¤×÷±í(SheetsÊôÐÔ) Sub testSheetExists()

MsgBox \²âÊÔ¹¤×÷²¾ÖÐÊÇ·ñ´æÔÚÖ¸¶¨Ãû³ÆµÄ¹¤×÷±í\ Dim b As Boolean

b = SheetExists(\Ö¸¶¨µÄ¹¤×÷±íÃû>\ If b = True Then

MsgBox \¸Ã¹¤×÷±í´æÔÚÓÚ¹¤×÷²¾ÖÐ.\ Else

MsgBox \¹¤×÷²¾ÖÐûÓÐÕâ¸ö¹¤×÷±í.\ End If

34

End Sub

¡®- - - - - - - - - - - - - - - - - - - - - - - Private Function SheetExists(sname) As Boolean Dim x As Object

On Error Resume Next

Set x = ActiveWorkbook.Sheets(sname) If Err = 0 Then

SheetExists = True Else

SheetExists = False End If

End Function

ʾÀý03-14£º¶Ôδ´ò¿ªµÄ¹¤×÷²¾½øÐÐÖØÃüÃû(Name·½·¨) Sub rename()

Name \¹¤×÷²¾Â·¾¶>\\<¾ÉÃû³Æ>.xls\¹¤×÷²¾Â·¾¶>\\<ÐÂÃû³Æ>.xls\End Sub

ʾÀý˵Ã÷£º´úÂëÖÐ<>ÖеÄÄÚÈÝΪÐèÒªÖØÃüÃûµÄ¹¤×÷²¾ËùÔÚ·¾¶¼°Ð¾ÉÃû³Æ¡£¸Ã·½·¨Ö»ÊǶÔδ´ò¿ªµÄÎļþ½øÐÐÖØÃüÃû£¬Èç¹û¸ÃÎļþÒѾ­´ò¿ª£¬Ê¹Óø÷½·¨»áÌáʾ´íÎó¡£

ʾÀý03-15£ºÉèÖÃÊý×Ö¾«¶È(PrecisionAsDisplayedÊôÐÔ) Sub SetPrecision() Dim pValue

MsgBox \ÔÚµ±Ç°µ¥Ôª¸ñÖÐÊäÈë1/3£¬²¢½«½á¹ûËãÖÁСÊýµãºóÁ½Î»\ ActiveCell.Value = 1 / 3

ActiveCell.NumberFormatLocal = \ pValue = ActiveCell.Value * 3

MsgBox \µ±Ç°µ¥Ôª¸ñÖеÄÊý×Ö³ËÒÔ3µÈÓÚ£º\

MsgBox \È»ºó,½«ÊýÖµ·ÖÀàÉèÖÃΪ[ÊýÖµ],¼´µ¥Ôª¸ñÖÐÏÔʾµÄ¾«¶È\ ActiveWorkbook.PrecisionAsDisplayed = True pValue = ActiveCell.Value * 3

MsgBox \´Ëʱ,µ±Ç°µ¥Ôª¸ñÖеÄÊý×Ö³ËÒÔ3µÈÓÚ£º\¶ø²»ÊÇ1\ ActiveWorkbook.PrecisionAsDisplayed = False End Sub

ʾÀý˵Ã÷£ºPrecisionAsDisplayedÊôÐÔµÄÖµÉèÖÃΪTrue£¬Ôò±íÃ÷²ÉÓõ¥Ôª¸ñÖÐËùÏÔʾµÄÊýÖµ½øÐмÆËã¡£

ʾÀý03-16£ºÉ¾³ý×Ô¶¨ÒåÊý×Ö¸ñʽ(DeleteNumberFormat·½·¨) Sub DeleteNumberFormat()

MsgBox \´Óµ±Ç°¹¤×÷²¾ÖÐɾ³ý000-00-0000µÄÊý×Ö¸ñʽ\ ActiveWorkbook.DeleteNumberFormat (\End Sub

ʾÀý˵Ã÷£ºDeleteNumberFormat·½·¨½«´ÓÖ¸¶¨µÄ¹¤×÷²¾ÖÐɾ³ý×Ô¶¨ÒåµÄÊý×Ö¸ñ

35

ʽ¡£

ʾÀý03-17£º¿ØÖƹ¤×÷²¾ÖÐͼÐÎÏÔʾ(DisplatyDrawingObjectsÊôÐÔ) Sub testDraw()

MsgBox \Òþ²Øµ±Ç°¹¤×÷²¾ÖеÄËùÓÐͼÐÎ\

ActiveWorkbook.DisplayDrawingObjects = xlHide MsgBox \½öÏÔʾµ±Ç°¹¤×÷²¾ÖÐËùÓÐͼÐεÄռλ·û\

ActiveWorkbook.DisplayDrawingObjects = xlPlaceholders MsgBox \ÏÔʾµ±Ç°¹¤×÷²¾ÖеÄËùÓÐͼÐÎ\

ActiveWorkbook.DisplayDrawingObjects = xlDisplayShapes End Sub

ʾÀý˵Ã÷£º±¾ÊôÐÔ×÷ÓõĶÔÏó°üÀ¨Í¼±íºÍÐÎ×´¡£ÔÚÓ¦Óñ¾Ê¾ÀýÇ°£¬Ó¦±£Ö¤¹¤×÷²¾ÖÐÓÐͼ±í»òÐÎ×´£¬ÒԲ쿴Ч¹û¡£

ʾÀý03-18£ºÖ¸¶¨Ãû³Æ(NamesÊôÐÔ) Sub testNames()

MsgBox \½«µ±Ç°¹¤×÷²¾Öй¤×÷±íSheet1ÄÚµ¥Ôª¸ñA1ÃüÃûΪmyName.\

ActiveWorkbook.Names.Add Name:=\1\

End Sub

ʾÀý˵Ã÷£º¶ÔÓÚWorkbook¶ÔÏó¶øÑÔ£¬NamesÊôÐÔ·µ»ØµÄ¼¯ºÏ´ú±í¹¤×÷²¾ÖеÄËùÓÐÃû³Æ¡£

ʾÀý03-19£º¼ì²é¹¤×÷²¾µÄ×Ô¶¯»Ö¸´¹¦ÄÜ(EnableAutoRecoverÊôÐÔ) Sub UseAutoRecover()

'¼ì²éÊÇ·ñ¹¤×÷²¾×Ô¶¯»Ö¸´¹¦ÄÜ¿ªÆô,Èç¹ûûÓÐÔò¿ªÆô¸Ã¹¦ÄÜ If ActiveWorkbook.EnableAutoRecover = False Then ActiveWorkbook.EnableAutoRecover = True MsgBox \¸Õ¿ªÆô×Ô¶¯»Ö¸´¹¦ÄÜ.\ Else

MsgBox \×Ô¶¯»Ö¸´¹¦ÄÜÒÑ¿ªÆô.\ End If End Sub

ʾÀý03-20£ºÉèÖù¤×÷²¾ÃÜÂë(PasswordÊôÐÔ) Sub UsePassword() Dim wb As Workbook

Set wb = Application.ActiveWorkbook wb.Password = InputBox(\ÇëÊäÈëÃÜÂë:\ wb.Close End Sub

ʾÀý˵Ã÷£ºPasswordÊôÐÔ·µ»Ø»òÉèÖù¤×÷²¾ÃÜÂ룬ÔÚ´ò¿ª¹¤×÷²¾Ê±±ØÐëÊäÈëÃÜÂë¡£±¾Ê¾Àý´úÂëÔËÐкó£¬ÌáʾÉèÖÃÃÜÂ룬Ȼºó¹Ø±Õ¹¤×÷²¾£»Ôٴδò¿ª¹¤×÷²¾Ê±£¬ÒªÇóÊäÈëÃÜÂë¡£

36