Microsoft Excel VBA - 运行时错误' -2147024809(80070057)'

时间:2017-07-06 04:41:13

标签: excel vba excel-vba

我录制了一个宏,它将更改按钮上的文字以显示当前日期。工作表不受保护。当我共享工作簿并单击按钮时,出现此错误:

  

运行时错误' -2147024809(80070057)':
  锁定请求的形状以供选择

我取消选中" Lock"和#34;锁定文字" (当我右键单击按钮并单击"格式控制"并在"保护"标签下),但它没有解决问题。

有没有人知道这方面的解决方法?我希望宏在共享时工作。谢谢。

这是我录制宏时得到的代码:

Sub updateDate()
'
' updateDate Macro
'

'
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Characters.Text = Date
    With Selection.Characters(Start:=1, Length:=9).Font
        .Name = "Calibri"
        .FontStyle = "Bold"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
    Range("B1").Select
End Sub

2 个答案:

答案 0 :(得分:0)

当共享/受保护时,您无法访问某些对象/类。但是你的目标是什么,你不必在完成后更改字体(请记住,只有当ActiveSheet有这个按钮时才能调用这个字段):

Sub updateDate()
'
' updateDate Macro
'
'
    ActiveSheet.Buttons("Button 1").Text = CStr(Now) ' Date
    Range("B1").Select ' <-- Not needed
End Sub

<小时/> 的修改
要在共享时更改形状,首先需要取消共享,进行更改,然后将其保存为SharedAccess。

尝试添加其他按钮并将其分配给MakeButtonRedBold

Sub MakeButtonRedBold()
    MakeButtonStyle01 "Button 1"
End Sub

Private Sub MakeButtonStyle01(ByVal sButtonName As String)
    Dim oBtn As Object
    On Error Resume Next
    Set oBtn = ActiveSheet.Buttons("Button 1")
    On Error GoTo 0
    If Not oBtn Is Nothing Then
        Application.DisplayAlerts = False
        ThisWorkbook.ExclusiveAccess ' UnShare Workbook
        With oBtn.Font
            .Name = "Calibri"
            .Bold = True
            .Size = 11
            .Color = RGB(255, 0, 0)
        End With
        ThisWorkbook.SaveAs ThisWorkbook.FullName, AccessMode:=xlShared ' Share the Workbook
        Application.DisplayAlerts = True
    End If
End Sub

答案 1 :(得分:0)


尝试在vb6.0 sp6 win10-64bit中查看png文件时遇到相同的错误。也许您可以使用它。
简短答案:关于错误恢复下一个

我昨天发现了所有显示png文件的代码。
由于属性:Stretch = True

,在Form1上更改为Image1.image

私人子Form_Load()
'为了使这项工作
'在菜单项目/参考中[x] Microsoft Windows图像采集库V2.0
'C:\ WINDOWS \ System32 \ wiaaut.dll
'http://www.vbforums.com/showthread.php?813811-How-to-load-PNG-image
'如果在
下面添加了一行,则使png-support.exe无效 On Error Resume Next'摆脱错误:vb6运行时错误-2147024809

昏暗的img作为新的WIA.ImageFile
img.LoadFile“ c:\ temp \ test.png”'确定文件类型png jpg gif tif
设置Image1 = img.FileData.Picture
设置img =没什么

结束Sub