【问题标题】:CorelDraw X6 Macro to insert Date using DTPicker ControlCorelDraw X6 宏使用 DTPicker 控件插入日期
【发布时间】:2015-11-30 02:12:17
【问题描述】:

我正在尝试将日期插入标签。我已经编写了以下代码。我可以通过单击箭头来选择日期,然后会弹出日历。 “取消”按钮正在工作,但是当我单击“确定”时,我无法将其插入标签上。标签是带有文本和图像的常规 Corel 文档。我尝试插入一个矩形工具箱,看看是否可以通过使用 X、Y 坐标在其中插入日期,但这不起作用。 我基本上需要知道如何在标签上插入DTPicker.Value

Sub ShowIt()
    Calendar.Show
End Sub

Private Sub Cancel_Click()
    Unload Me
End Sub

Private Sub OK_Click()
    a = DTPicker1.Value
    b = Format(DTPicker1.Value, "mm/dd/yy")
    Unload Me
End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
    DTPicker1.Value = Format(DTPicker1.Value, "mm/dd/yy")
End Sub

Private Sub Calendar_Activate()
    Me.DTPicker1.Value = Date    
End Sub

谢谢!

【问题讨论】:

    标签: vba date coreldraw


    【解决方案1】:

    试试这个: 1.在宏窗体上添加一个按钮 2.选择矩形 3. 点击按钮 4. 宏会读取矩形的X, Y Pos,然后创建文本并将其定位在矩形的中心

    ActiveDocument.ReferencePoint = cdrCenter
    
    XPos = Activeselection.PositionX 'XPos of the rect
    
    YPos = Activeselection.PositionY 'YPos of the rect
    
    Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
    
    s.PositionX=XPos
    
    s.PositionY=YPos
    

    【讨论】:

    • 您好,感谢您的帮助。使用此代码时出现以下错误:运行时错误'438。对象不支持此属性或方法。此错误涉及“ReferencePoint”、“PositionX”、“PositionY”、“CreateArtisticText”。当我尝试重新键入这些属性时,它们不会出现在对象浏览器上。知道为什么我不能使用它们吗?
    • 我想我能够修复其中的一些问题,但现在我遇到了这一行的问题:Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))。它说该对象不支持此属性或方法。我添加了一些库。我错过了什么吗?
    • 顺便说一句,我找到了 CorelDraw X4 的 VBA 编程指南。 ahearncutting.com/download/…。它很有用,但是我使用的是 CorelDraw X6。
    • 刚找到CorelDraw X6的那个; ett.bme.hu/upload/…
    【解决方案2】:

    尝试运行之前与您的代码分开的代码。

    Sub Macro1()
    
      ActiveDocument.ReferencePoint = cdrCenter
    
      XPos = Activeselection.PositionX 
    
      YPos = Activeselection.PositionY 
    
      Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
    
      s.PositionX=XPos
    
      s.PositionY=YPos
    
    End Sub
    
    1. 选择矩形
    2. 点击宏
    3. 宏应该可以完美地创建日期并将其放置在矩形的中心。但是,日期是现在(宏执行的日期)。

    4. 那么你应该将“CStr(Date)”修改为引用日期的值。

    【讨论】:

    • 它一直在抱怨 ActiveLayer.CreateArtisticText。错误:“对象不支持属性或方法”。
    • 好的,我可以通过使用 for 来使用这些属性,例如CorelDRAW.ActiveDocument.ActivePage.ActiveLayer.CreateArtisticText。我现在遇到的问题是,当我使用 CorelDRAW.ActiveDocument.ReferencePoint = cdrCenter 时,它会引发以下错误:“对象变量或未设置块变量”。有什么想法吗?
    • 另外,当我设置 sh = CorelDRAW.ActiveDocument.ActivePage.ActiveLayer.CreateArtisticText(0, 0, CStr(DTPicker1.Value)) 时,调试器告诉我“sh = Nothing”。跨度>
    • Anajz,您可以编辑以前的帖子以包含新内容。
    【解决方案3】:

    “对象变量或未设置块变量”。

    那里没有活动文档。

    我认为你应该先创建新文档

    【讨论】:

    • 请包含一个代码示例以改进您的答案。
    • 我有一个新文档,我正在单击使用“矩形工具”创建的矩形。然后我转到工具菜单并单击宏编辑器,它会将我带到用户表单代码。为什么它无法识别我的文档?
    • Private Sub OK_Click() CorelDRAW.ActiveDocument.ReferencePoint = cdrCenter '此行引发“对象变量或未设置块变量”错误。结束子
    【解决方案4】:

    以下代码应按要求工作:

    ActiveDocument.ReferencePoint = cdrCenter
    
    XPos = Activeselection.PositionX 'XPos of the rect
    
    YPos = Activeselection.PositionY 'YPos of the rect
    
    Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
    
    s.PositionX=XPos
    
    s.PositionY=YPos
    

    但是: 他没有使用 Corel Draw ..... :)
    https://community.coreldraw.com/talk/coreldraw_community/f/101/t/51007

    【讨论】:

    • 是的,我的错。我没有意识到我使用的是 PhotoPaint 而不是 CorelDraw。但是,我已经尝试过该代码,但似乎对我不起作用。我正在使用下面的代码,也许我可以以某种方式实现您的代码,因为我将日期插入错误的位置。我尝试使用 Shape 而不是 Page,但在最后一行 sDate.Move 0,-sDate.SizeHeight 中出现错误。谢谢你的帮助。 @Yakk
    • Dim Page As Page Dim x As Double, y As Double Dim strMyDate As String Dim sDate As Shape Dim Shape As Shape strMyDate = CStr(DTPicker1.Value) If strMyDate "" Then For each page在 ActiveDocument.Pages Page.ActiveLayer.Shapes.All.GetPositionEx cdrTopLeft, x, y Set sDate = Page.ActiveLayer.CreateArtisticText(x, y, strMyDate) Next Page sDate.Move 0, -sDate.SizeHeight End If Unload Me End Sub
    • 对不起,我不知道如何正确发布代码,如上面的 cmets 所示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多