【问题标题】:Inserting QRCode to Database将二维码插入数据库
【发布时间】:2021-07-22 04:17:44
【问题描述】:

我有一些代码可以根据填写的用户表单插入二维码。 qrcode 正确插入,但是,我无法将 qrcode 插入到 G 列的最后一个单元格中。在用户表单中输入的信息被输入到数据库中,所以我在思考并找到最后一个条目并使用 .offset,但我可以不让它工作。这是我的代码:


    Sub GenerateSingleQRCode()
    Dim QRPic As String, QRURL As String, QRData As String, ForeCol As String, BackCol As String
    Dim QRSize As Long, LastRow As Long, ItemRow As Long
    Dim targetRow As Integer
    Dim rngAnchor As Range
    Dim Sh As Shape
    
    With Worksheets("Database")
            
            
            On Error Resume Next
            .Shapes("QRItemPic").Delete
            On Error GoTo 0
            QRData = vbNewLine & "Part Number: " & txtPartNumber & vbNewLine & "Description: " & txtDescription & vbNewLine & "Supplier: " & txtSupplier & vbNewLine & "Product Line: " & partInfoProductLine  'Item Name (QR Data)
            QRSize = Worksheets("Setup").Range("C5").Value 'Large QR Size
            ForeCol = Right("00000" & Hex(Worksheets("Setup").Range("C4").Value), 6)
            ForeCol = Right(ForeCol, 2) & Mid(ForeCol, 3, 2) & Left(ForeCol, 2)
            BackCol = Right("00000" & Hex(Worksheets("Setup").Range("C3").Value), 6)
            BackCol = Right(BackCol, 2) & Mid(BackCol, 3, 2) & Left(BackCol, 2)
            QRURL = "https://api.qrserver.com/v1/create-qr-code/?data=" & QRData & "&size=" & QRSize & "x" & QRSize & _
            "&charset-source=UTF-8&charset-target-=UTF-8ecc=L&color=" & ForeCol & "&bgcolor=" & BackCol & _
            "&margin=0&qzone=1&format=png"
            With Worksheets("Database").Pictures.Insert(QRURL)
                
                
            End With
            End With
    End Sub

【问题讨论】:

  • 哇,你用网页生成二维码?上次我有需要时,我使用 ZXing 在 C# 中编写了一个自定义插件。看起来你可以下载一个addin
  • 这看起来像 Excel。需要注意的是,Excel 不是数据库。
  • 这能回答你的问题吗? VBA Excel Adding pictures to a worksheet
  • 不,当我说“数据库”时,我指的是一个 Excel 表。它正在正确插入二维码。我只需要将 qrcode 插入 G 列的最后一行。
  • 好吧,图像对象不一定存在于行或列中。它们是漂浮在工作表上方的对象。您可以将它们与单元格对齐。所以你的问题是如何将图片对象移动到单元格位置?因为那是question that has been asked and answered too.

标签: excel vba qr-code


【解决方案1】:

请使用下一种方式:

替换这部分代码:

        With Worksheets("Database").Pictures.Insert(QRURL)
                
                
        End With

用这个:

            Set wsDB = Worksheets("Database")
            Set rng = wsDB.Range("G" & wsDB.Range("F" & rows.count).End(xlUp).row)
            With .Pictures.Insert(QRURL)
                .top = rng.top + (rng.height - .height) / 2
                .left = rng.left + (rng.width - .width) / 2
            End With

此修改会将二维码放置在 G:G 的最后一个单元格中,但基于 F:F 列中的最后一个值。我的意思是,二维码将放置在 F:F 中最后一个值附近的单元格中...以 G:G 列的单元格为中心。

【讨论】:

  • 有可能在牢房内得到它吗?我是 VBA 新手,但我不太确定为什么可以使用图片但不能使用此 qrcode?​​span>
  • 它不是位于单元格的左上角吗?我的意思是,它的左上角..
  • 不可能在单元“内部”。只有文本可以在单元格内。即使您有一张完全覆盖单元格并随单元格调整大小的图片,下面的单元格内部仍然有可编辑的文本。图片是一个浮动的 OLE 对象,在 Z 方向上位于电子表格“上方”。
  • @inmoint 你的意思是要以单元格为中心吗?讨论中的单元格是否总是足够宽/足够高以在其(伪)内部接受它?如果是,我可以调整代码。它应该是简单的算术,与代码图片和单元格大小有关。修改了代码以使 QR 图片在单元格上居中。这是你习惯的吗?
  • @inmoint 您没有抽出时间来测试请求的解决方案吗?如果经过测试,它不会做你不会做的事吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2013-04-28
  • 1970-01-01
  • 2021-02-06
相关资源
最近更新 更多