深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 76|回复: 3
打印 上一主题 下一主题

关于Excel的VBA开发验证

[复制链接]

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
跳转到指定楼层
楼主
发表于 2025-1-12 20:47:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于Excel的VBA开发验证

1.打开宏开发


打开Excel表格,点击左上角【文件】-【更多】-【选项】,在弹出的“Excel选项”对话框中点击【自定义功能区】,将右侧【开发工具】勾选,然后点击【确定】,这样“开发工具”选项卡就显示出来了。
https://baijiahao.baidu.com/s?id=1786686340589736102&wfr=spider&for=pc


2、另存xlsm格式


3、注册一个测试证书
SELFCERT.EXE
C:\Program Files\Microsoft Office\root\Office16



回复

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
沙发
 楼主| 发表于 2025-1-12 20:56:02 | 只看该作者
用VBA写一段代码,抓取当前sheet的A5至A11范围内单元格里的内容,并用逗号合并成一个字符串,并把这个字符串写到F2单元格
  1. Sub 按钮1_Click()
  2.     Dim ws As Worksheet
  3.     Dim cell As Range
  4.     Dim result As String
  5.    
  6.     ' 获取当前活动的工作表
  7.     Set ws = ActiveSheet
  8.    
  9.     ' 初始化结果字符串
  10.     result = ""
  11.    
  12.     ' 遍历A5到A11范围内的单元格
  13.     For Each cell In ws.Range("A5:A11")
  14.         ' 如果单元格不为空,则将其内容添加到结果字符串中
  15.         If cell.Value <> "" Then
  16.             result = result & cell.Value & ""
  17.         End If
  18.     Next cell
  19.    
  20.     ' 移除最后一个多余的逗号
  21.     If Len(result) > 0 Then
  22.         result = Left(result, Len(result) - 1)
  23.     End If
  24.    
  25.     ' 将结果字符串写入到F2单元格
  26.     ws.Range("F2").Value = result
  27. End Sub
复制代码


回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
板凳
 楼主| 发表于 2025-1-12 21:08:59 | 只看该作者

VBA能否实现从一个网址获取一个图片,并用这个图片来更新exel档上的一个图片
  1. Sub DownloadAndInsertImage()
  2.     Dim imageUrl As String
  3.     Dim imagePath As String
  4.     Dim ws As Worksheet
  5.     Dim pic As Picture
  6.    
  7.     ' 设置图片URL和保存路径
  8.     imageUrl = "http://127.0.0.1/qrcode/temp/test1.png" ' 替换为实际的图片URL
  9.     imagePath = Environ("TEMP") & "\downloaded_image.png"
  10.    
  11.     ' 下载图片
  12.     DownloadFile imageUrl, imagePath
  13.    
  14.     ' 插入图片到工作表
  15.     Set ws = ThisWorkbook.Sheets(1) ' 选择要插入图片的工作表
  16.     Set pic = ws.Pictures.Insert(imagePath)
  17.    
  18.     ' 调整图片位置和大小(可选)
  19.     With pic
  20.         .Left = ws.Range("A1").Left
  21.         .Top = ws.Range("A1").Top
  22.         .Width = 100 ' 设置宽度
  23.         .Height = 100 ' 设置高度
  24.     End With
  25. End Sub

  26. Function DownloadFile(ByVal URL As String, ByVal LocalFilename As String) As Boolean
  27.     Dim WinHttpReq As Object
  28.     Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
  29.     WinHttpReq.Open "GET", URL, False
  30.     WinHttpReq.send
  31.    
  32.     If WinHttpReq.Status = 200 Then
  33.         Dim oStream As Object
  34.         Set oStream = CreateObject("ADODB.Stream")
  35.         oStream.Open
  36.         oStream.Type = 1
  37.         oStream.Write WinHttpReq.responseBody
  38.         oStream.SaveToFile LocalFilename, 2 ' 1 = no overwrite, 2 = overwrite
  39.         oStream.Close
  40.         DownloadFile = True
  41.     Else
  42.         DownloadFile = False
  43.     End If
  44. End Function

  45. Private Sub CommandButton1_Click()
  46.    'MsgBox "Great!"
  47.     DownloadAndInsertImage
  48. End Sub
复制代码


回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
地板
 楼主| 发表于 2025-1-12 21:26:17 | 只看该作者
在VBA中,Picture 对象有许多属性和方法,可以用来操作图片。以下是一些常用的 Picture 对象的属性:
  • Name: 图片的名称。
  • Left: 图片左上角的横坐标。
  • Top: 图片左上角的纵坐标。
  • Width: 图片的宽度。
  • Height: 图片的高度。
  • Locked: 一个布尔值,指示图片是否被锁定。
  • Placement: 图片的位置类型(例如,xlMoveAndSize、xlMove、xlFreeFloating)。
  • PrintObject: 一个布尔值,指示图片是否在打印时显示。
  • ShapeRange: 返回包含该图片的 ShapeRange 对象。
  • Visible: 一个布尔值,指示图片是否可见。
  • ZOrder: 图片的堆叠顺序。
以下是一个示例代码,演示如何访问和修改这些属性:
  1. Sub PicturePropertiesExample()
  2.     Dim ws As Worksheet
  3.     Dim pic As Picture
  4.    
  5.     ' 获取要操作的工作表
  6.     Set ws = ThisWorkbook.Sheets(1) ' 选择要操作的工作表
  7.    
  8.     ' 假设工作表中已经有一个图片对象
  9.     On Error Resume Next
  10.     Set pic = ws.Pictures(1)
  11.     On Error GoTo 0
  12.    
  13.     If Not pic Is Nothing Then
  14.         ' 输出图片的一些属性
  15.         Debug.Print "Name: " & pic.Name
  16.         Debug.Print "Left: " & pic.Left
  17.         Debug.Print "Top: " & pic.Top
  18.         Debug.Print "Width: " & pic.Width
  19.         Debug.Print "Height: " & pic.Height
  20.         Debug.Print "Locked: " & pic.Locked
  21.         Debug.Print "Placement: " & pic.Placement
  22.         Debug.Print "PrintObject: " & pic.PrintObject
  23.         Debug.Print "Visible: " & pic.Visible
  24.         Debug.Print "ZOrder: " & pic.ZOrder
  25.         
  26.         ' 修改图片的一些属性
  27.         pic.Left = 100
  28.         pic.Top = 100
  29.         pic.Width = 200
  30.         pic.Height = 200
  31.         pic.Locked = True
  32.         pic.Visible = False
  33.         pic.ZOrder msoSendToBack
  34.     End If
  35. End Sub
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 00:43 , Processed in 0.036116 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表