Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1401|回复: 9

烦请帮忙看下Excel这段VBA代码怎么改?

[复制链接]
发表于 2022-6-10 13:35 | 显示全部楼层 |阅读模式
我想要Shee2里面的数量Copy过来为数值,但并不改变Sheet1里数量的公式。烦请大佬们帮忙看下。 1.png
2.png



发表于 2022-6-10 13:40 | 显示全部楼层
把表格和代码都传上来,便于别人修改、测试!
回复

使用道具 举报

发表于 2022-6-10 13:41 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2022-6-10 13:46 | 显示全部楼层
附件已上传,大佬们帮忙看下怎么修改

测试版查询.rar

23.48 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2022-6-10 13:47 | 显示全部楼层
hasyh2008 发表于 2022-6-10 13:40
把表格和代码都传上来,便于别人修改、测试!

已上传
回复

使用道具 举报

 楼主| 发表于 2022-6-10 13:47 | 显示全部楼层
楚雪飞扬 发表于 2022-6-10 13:41
可以使用粘贴为数值

附件上传了,可以帮忙看下怎么改嘛
回复

使用道具 举报

发表于 2022-6-10 14:06 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-6-10 14:08 编辑

Sub 按问题查询()
    ends = Sheet1.Columns(1).Find("*", , , , , searchdirection:=xlPrevious).Row   '动态找到A列的最后一个单元格
    Sheet2.Range("A5:E1048576").Clear '清除之前所有的筛选结果
    For Each Rng In Sheet1.Range("C2:C" & ends)
        m = m + 1
        If Rng Like Sheet2.Range("B3") Then '如果条件成立,那么
        k = k + 1
            Sheet1.Range("a" & m + 1 & ":E" & m + 1).Copy Sheet2.Range("a" & k + 4) '将记录复制到另一个区域
            Sheet2.Range("D" & k + 4).Formula = "=sum(Sheet1!F" & m + 1 & ",Sheet1!G" & m + 1 & ")"
        End If
    Next
End Sub

测试版查询.rar

23.73 KB, 下载次数: 4

回复

使用道具 举报

发表于 2022-6-10 14:14 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-6-10 14:26 编辑

直接赋值最好:



Sub 按问题查询()
    ends = Sheet1.Columns(1).Find("*", , , , , searchdirection:=xlPrevious).Row   '动态找到A列的最后一个单元格
    Sheet2.Range("A5:E1048576").Clear '清除之前所有的筛选结果
    For Each Rng In Sheet1.Range("C2:C" & ends)
        m = m + 1
        If Rng Like Sheet2.Range("B3") Then '如果条件成立,那么
        k = k + 1
            Sheet2.Range("a" & k + 4).resize(1,5).value=Sheet1.Range("a" & m + 1).resize(1,5).value
        End If
    Next
End Sub
回复

使用道具 举报

发表于 2022-6-10 14:30 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-6-10 14:42 编辑

Sub 按问题查询()
    Ends = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row  '动态找到A列的最后一个单元格
    Sheet2.Range("A1").CurrentRegion.Offset(4).Clear '清除之前所有的筛选结果
    M = 2
    K = 5
    For Each Rng In Sheet1.Range("C2:C" & Ends)
        If Rng Like Sheet2.Range("B3") Then '如果条件成立,那么
            Sheet1.Range("A" & M & ":E" & M).Copy Sheet2.Range("A" & K)    '将记录复制到另一个区域
            Sheet2.Range("D" & K).Formula = "=Sum(Sheet1!F" & M & ",Sheet1!G" & M & ")"
            K = K + 1
        End If
    M = M + 1
    Next
End Sub

Sub 按问题查询1()
    Ends = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row  '动态找到A列的最后一个单元格
    Sheet2.Range("A1").CurrentRegion.Offset(4).Clear '清除之前所有的筛选结果
    M = 2
    K = 5
    For Each Rng In Sheet1.Range("C2:C" & Ends)
        If Rng Like Sheet2.Range("B3") Then '如果条件成立,那么
            Sheet2.Range("A" & K).Resize(1, 5).Value = Sheet1.Range("A" & M).Resize(1, 5).Value
            K = K + 1
        End If
    M = M + 1
    Next
End Sub

测试版查询.rar

24.5 KB, 下载次数: 2

回复

使用道具 举报

发表于 2022-6-10 19:21 | 显示全部楼层
五六七 发表于 2022-6-10 13:47
附件上传了,可以帮忙看下怎么改嘛

请测试,不知道是否能达到你想要的效果
搜狗截图20220610191812.png
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-17 01:43 , Processed in 0.257123 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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