Excel 更改共享工作簿上的按钮文本:运行时错误'-2147024809(80070057)和#x27;

Excel 更改共享工作簿上的按钮文本:运行时错误'-2147024809(80070057)和#x27;,excel,vba,Excel,Vba,我录制了一个宏来更改按钮上的文本以显示当前日期 工作表不受保护 当我共享工作簿并单击按钮时,出现以下错误: 运行时错误'-2147024809(80070057)': 请求的形状已锁定以供选择 我取消选中了“锁定”和“锁定文本”(当我右键单击按钮并单击“格式控制”和“保护”选项卡下),但它没有解决问题 我希望宏在共享时工作 Sub updateDate() ' ' updateDate Macro ' ' ActiveSheet.Shapes.Range(Array("Button 1

我录制了一个宏来更改按钮上的文本以显示当前日期

工作表不受保护

当我共享工作簿并单击按钮时,出现以下错误:

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

我取消选中了“锁定”和“锁定文本”(当我右键单击按钮并单击“格式控制”和“保护”选项卡下),但它没有解决问题

我希望宏在共享时工作

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

共享/保护某些对象/类时,无法访问该对象/类。但您的目标是可以实现的,完成后您不必更改字体(请记住,只有当ActiveSheet有此按钮时才应调用此子项):


尝试在vb6.0 sp6 win10-64位中查看png文件时,我遇到了相同的错误。也许你可以用它。
简短回答:出错后继续下一步

我昨天发现,所有显示png文件的代码
更改为Form1上的Image1.image,因为属性:Stretch=True

私有子表单加载()
“为了让这一切顺利进行
'菜单中的项目/参考[x]Microsoft Windows Image Acquisition Library V2.0
'C:\WINDOWS\System32\wiaaut.dll

'如果在下面添加了一行,则Make png-support.exe不起作用
错误时继续下一步“消除错误:vb6运行时错误-2147024809

将img设置为新的WIA.ImageFile
img.LoadFile“c:\temp\test.png”确定文件类型png jpg gif tif
设置Image1=img.FileData.Picture
设置img=Nothing


结束Sub

非常感谢您的支持。共享工作簿时,此代码有效。你会不会碰巧知道如何把文字加粗,把颜色改成红色。我尝试过这样做“ActiveSheet.Buttons(“Button 1”).Font.Bold=True”,但当我共享工作簿并单击它时,我会遇到运行时错误1004,无法设置字体类的Bold属性。再次感谢您的帮助。@Wiz321有关更改共享工作簿中字体的信息,请参见编辑。方法是在更改前取消共享,然后在更改后另存为共享。非常感谢您提供您的代码。这确实有效。
Sub updateDate()
'
' updateDate Macro
'
'
    ActiveSheet.Buttons("Button 1").Text = CStr(Now) ' Date
    Range("B1").Select ' <-- Not needed
End Sub
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