Excel精英培训网

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

[已解决]vba运行二义性错误,帮忙修改

[复制链接]
发表于 2022-4-29 15:56 | 显示全部楼层 |阅读模式
1学分




最佳答案
2022-4-29 15:56
上附件。

最佳答案

查看完整内容

上附件。
发表于 2022-4-29 15:56 | 显示全部楼层    本楼为最佳答案   
上附件。

聊城公司原料成品化验报表-2022-2.rar

250.14 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2022-4-29 16:09 | 显示全部楼层
本帖最后由 zhufuan 于 2022-4-29 16:36 编辑

文件

聊城公司原料成品化验报表-2022 - 副本.zip

228.27 KB, 下载次数: 2

回复

使用道具 举报

发表于 2022-4-29 16:39 | 显示全部楼层
本帖最后由 vitrel 于 2022-4-29 16:42 编辑

在Sheet2的代码中,出现了两个名称相同的子程序,准确来说,是同一事件出现了两个,这是不允许的。
解决办法:根据您的实际情况,只保留一个。如果两个代码都有用,那就将它们合并在一个事件(子程序)中。

001.png
回复

使用道具 举报

 楼主| 发表于 2022-4-30 10:10 | 显示全部楼层
我也使用过,合并后还是不运行,不知如何合并
回复

使用道具 举报

发表于 2022-4-30 15:11 | 显示全部楼层
楼主,您好!
现合并成一个事件,供参考。

  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     If Target.CountLarge > 1 Then Exit Sub '如果选中的单元格超过一个,则什么也不做
  3.     If Target.Row = 1 Then Exit Sub '如果选中的是第一行(标题行),则什么也不做
  4.     '如果选中第1列
  5.     If Target.Column = 1 Then
  6.         arr = Worksheets("配方理论值").Range("a2:a" & Worksheets("配方理论值").Cells(Rows.Count, "a").End(3).Row) '数据源
  7.         With TextBox1
  8.             .Value = ""
  9.             .Visible = True '可见
  10.             .Top = Target.Top '文本框顶部位置
  11.             .Left = Target.Left '文本框左侧位置
  12.             .Height = Target.Height '文本框高度
  13.             .Width = Target.Width '文本框宽度
  14.             .Activate '激活文本框
  15.         End With
  16.         With ListBox1
  17.             .Visible = True '可
  18.             .Top = Target.Offset(0, 1).Top
  19.             .Left = Target.Offset(0, 1).Left
  20.             .Height = Target.Height * 5
  21.             .Width = Target.Width
  22.             .List = arr '写入数据源数据
  23.         End With
  24.     Else
  25.         ListBox1.Visible = False '不可见
  26.         TextBox1.Visible = False '不可见
  27.     End If
  28.     '如果选中第3列
  29.     If Target.Column = 3 Then
  30.         Set DP_inRng = Target
  31.         Call fmdatecl.ShowFrmAndMoveWithRange(Target)
  32.     Else
  33.         fmdatecl.Hide
  34.     End If
  35. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2022-4-30 16:27 | 显示全部楼层
十分感谢,这就是我想要的结果。
回复

使用道具 举报

 楼主| 发表于 2022-4-30 16:38 | 显示全部楼层
我是个新手,想问一下是改的哪个地方,是属性吗,
回复

使用道具 举报

发表于 2022-4-30 17:29 | 显示全部楼层
本帖最后由 vitrel 于 2022-4-30 17:33 编辑
zhufuan 发表于 2022-4-30 16:38
我是个新手,想问一下是改的哪个地方,是属性吗,

楼主,您好!
既然您说您是新手,那我就不客气,真当您新手,我说详细些,您别介意。
1、打开您的工作簿。
2、用快捷键Alt+F11进入VBE编辑界面。
3、从左边的“工程”窗口中,找到“Sheet2 (成品)”,双击它便可在右边看到它里面的代码。
4、就在这个“Sheet2 (成品)”的代码中,您原来的代码里两个同名的子过程(事件),因此运行时提示出错。
5、我只是把这两个同名的子过程(事件)的代码合并了,因此程序便能正常运行。
6、您原来重名的子过程我没有删除,留下来供参考,我只是在每行代码前加了 '(单引号),整行代码都变成了灰色、不再执行。

001.png



回复

使用道具 举报

 楼主| 发表于 2022-4-30 20:58 | 显示全部楼层
十分感谢老师
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 20:24 , Processed in 0.355601 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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