ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 302|回复: 6

哪位大神帮我调一下偏移,怎么调都到不了指定单元格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-7 03:06 | 显示全部楼层 |阅读模式
重新找到了一个代码修改,但是偏移总是调不好,哪个大神能帮我调一下。谢谢!!!


Function 插入2(rg As Range) '图片存在文档
    'Application.Volatile
     ActiveSheet.Unprotect
    Dim MyFile As String, MyPath As String, T, L, W, H
    MyPath = Sheet1.[ay1] & "\"
    MyFile = Trim(rg.Value) & ".jpg"
    If Dir(MyPath & MyFile) = "" Then Exit Function
    T = rg.Offset(1, 2).Top + 1  '对应编码的列的偏移量
    L = rg.Offset(1, 2).Left     '对应编码的列的偏移量
    W = rg.Offset(1, 2).Width  '对应编码的列的偏移量
    H = rg.Offset(1, 2).Height - 1 '对应编码的列的偏移量
    ActiveSheet.Shapes.AddPicture MyPath & MyFile, msoFalse, msoTrue, L, T, W, H
    End Function
Sub 批量插入图片()
Application.ScreenUpdating = False
  ActiveSheet.Unprotect
   Dim n, r, i, j, k, s
    For i = 6 To Sheet1.[a20].End(xlUp).Row
    For r = 1 To 1
    插入2 Sheet1.Cells(i - 1, r) '编码所在列数。
Next
         Next
Application.ScreenUpdating = True

For j = 6 To Sheet1.[e20].End(xlUp).Row
      For r = 5 To 5
    插入2 Sheet1.Cells(j, r)   '编码所在列数。
Next
         Next
Application.ScreenUpdating = True

    For k = 6 To Sheet1.[i20].End(xlUp).Row
    For r = 9 To 9
    插入2 Sheet1.Cells(k, r)   '编码所在列数。
Next
         Next
Application.ScreenUpdating = True


End Sub

Sub GetSourcePath()

On Error Resume Next
       Application.ScreenUpdating = False '禁止屏幕刷新
        Dim MyPath$, MyFile$, k% '定义文件夹和文件
        With Application.FileDialog(msoFileDialogFolderPicker) '进入一个文件夹选择对话框
            If .Show Then                                      '如果进入文件夹选择对话框有选中的文件则
             MyPath = .SelectedItems(1)                        'Mypath就等于选中的文件路径
            End If
        End With
           If MyPath <> "" Then Sheet1.Range("AY1").Value = MyPath '如果选中文件不等于空就让sheet.[ay1]等于文件夹的路径
           ys = MsgBox(" 请确认是否插入图片 !", vbOKCancel, "确认窗口") '调出msgbox 对话框,询问是否需要插入图片,有是和取消两个选项
           If ys = 1 Then
        Call 批量插入图片
        End If
        Application.ScreenUpdating = True

End Sub

Sub delpic() '批量删除照片
    Dim p As Shape
        For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("c6:c20")) Is Nothing Then
                p.Delete
            End If
        Next
         For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("g6:g20")) Is Nothing Then
                p.Delete
            End If
        Next
         For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("k6:k20")) Is Nothing Then
                p.Delete
            End If
        Next





    End Sub




1.zip

223.02 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2023-7-7 08:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Function 插入2(rg As Range) '图片存在文档
    'Application.Volatile
     ActiveSheet.Unprotect
    Dim MyFile As String, MyPath As String, T, L, W, H
    MyPath = Sheet1.[ay1] & "\"
    MyFile = Trim(rg.Value) & ".jpg"
    If Dir(MyPath & MyFile) = "" Then Exit Function
    Set Rng = rg.Offset(0, 2).Offset(1)
    Rng.Select
    Set Rng = Selection
    T = Rng.Top + 1 '对应编码的列的偏移量
    L = Rng.Left     '对应编码的列的偏移量
    W = Rng.Width  '对应编码的列的偏移量
    H = Rng.Height - 1 '对应编码的列的偏移量
    ActiveSheet.Shapes.AddPicture MyPath & MyFile, msoFalse, msoTrue, L, T, W, H
    End Function
Sub 批量插入图片()
Application.ScreenUpdating = False
  ActiveSheet.Unprotect
   Dim n, r, i, j, k, s
    For i = 6 To Sheet1.[a20].End(xlUp).Row + 1
        For r = 1 To 9 Step 4
            If Len(Sheet1.Cells(i - 1, r)) <> "" Then
            插入2 Sheet1.Cells(i - 1, r) '编码所在列数。
            End If
        Next
    Next
' Application.ScreenUpdating = True
'
' For j = 6 To Sheet1.[e20].End(xlUp).Row + 1
'      For r = 5 To 5
'    插入2 Sheet1.Cells(j, r)   '编码所在列数。
'Next
'         Next
' Application.ScreenUpdating = True
'
'    For k = 6 To Sheet1.[i20].End(xlUp).Row + 1
'    For r = 9 To 9
'    插入2 Sheet1.Cells(k, r)   '编码所在列数。
'Next
'         Next
Application.ScreenUpdating = True

  
End Sub

Sub GetSourcePath()

On Error Resume Next
       Application.ScreenUpdating = False '禁止屏幕刷新
        Dim MyPath$, MyFile$, k% '定义文件夹和文件
        With Application.FileDialog(msoFileDialogFolderPicker) '进入一个文件夹选择对话框
            If .Show Then                                      '如果进入文件夹选择对话框有选中的文件则
             MyPath = .SelectedItems(1)                        'Mypath就等于选中的文件路径
            End If
        End With
           If MyPath <> "" Then Sheet1.Range("AY1").Value = MyPath '如果选中文件不等于空就让sheet.[ay1]等于文件夹的路径
           ys = MsgBox(" 请确认是否插入图片 !", vbOKCancel, "确认窗口") '调出msgbox 对话框,询问是否需要插入图片,有是和取消两个选项
           If ys = 1 Then
        Call 批量插入图片
        End If
        Application.ScreenUpdating = True
   
End Sub

Sub delpic() '批量删除照片
    Dim p As Shape
        For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("c6:c20")) Is Nothing Then
                p.Delete
            End If
        Next
         For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("g6:g20")) Is Nothing Then
                p.Delete
            End If
        Next
         For Each p In ActiveSheet.Shapes
            If Not Application.Intersect(p.TopLeftCell, Range("k6:k20")) Is Nothing Then
                p.Delete
            End If
        Next
        
        
        
        
        
    End Sub



TA的精华主题

TA的得分主题

发表于 2023-7-7 08:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 liulang0808 于 2023-7-7 08:02 编辑

1 (7).zip (336.95 KB, 下载次数: 18)
代码格式有些乱,表格布局也不是太规范,根据附件内容猜着整的,供参考

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-7-7 08:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
作业前后照片对比.rar (23.47 KB, 下载次数: 2)

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-7 15:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liulang0808 发表于 2023-7-7 08:01
代码格式有些乱,表格布局也不是太规范,根据附件内容猜着整的,供参考

感谢,完美解决!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-20 10:55 | 显示全部楼层
liulang0808 发表于 2023-7-7 08:01
代码格式有些乱,表格布局也不是太规范,根据附件内容猜着整的,供参考

大神,我有一个问题,这个代码只能用于本工作簿,用其他工作簿调用这个vba能运行但是显示不了图片,这个为什么。

TA的精华主题

TA的得分主题

发表于 2023-7-20 11:40 | 显示全部楼层
light456 发表于 2023-7-20 10:55
大神,我有一个问题,这个代码只能用于本工作簿,用其他工作簿调用这个vba能运行但是显示不了图片,这个 ...

用于其他工作簿是怎么用的?
建议在处理图片部分设置断点,对应分步执行确认下原因吧
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 04:37 , Processed in 0.046135 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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