请教,使用Excel VBA编程,如何在文本框中具有右键功能?然后可以复制/粘贴。谢谢。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教,使用Excel VBA编程,如何在文本框中具有右键功能?然后可以复制/粘贴。谢谢。相关的知识,希望对你有一定的参考价值。
首先,添加一个模块,粘贴下面的代码:Sub 添加()
Dim aa As CommandBar
Dim bb As CommandBarControl
On Error Resume Next
CommandBars("abc").Delete
Set aa = CommandBars.Add(Name:="abc", Position:=msoBarPopup, Temporary:=True)
With aa
Set bb = .Controls.Add(Type:=msoControlButton)
With bb
.Caption = "复 制"
.OnAction = "fuzhi"
End With
Set bb = .Controls.Add(Type:=msoControlButton)
With bb
.Caption = "剪 切"
.OnAction = "jianqie"
End With
Set bb = .Controls.Add(Type:=msoControlButton)
With bb
.Caption = "粘 贴"
.OnAction = "zhantie"
End With
Set bb = .Controls.Add(Type:=msoControlButton)
With bb
.Caption = "清 除"
.OnAction = "qingchu"
End With
End With
aa.ShowPopup
End Sub
Private Sub fuzhi()
Application.SendKeys "^c", True
End Sub
Private Sub jianqie()
Application.SendKeys "^x", True
End Sub
Private Sub zhantie()
Application.SendKeys "^v", True
End Sub
Private Sub qingchu()
Application.SendKeys "del", True
End Sub
然后添加textbox1的代码
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = xlSecondaryButton Then
添加
CommandBars("abc").Delete
End If
End Sub 参考技术A 对于Excel VBA中的文本框,可以使用快捷键来进行复制/粘贴,这是最简单的方法。如果要使用右键,不是不可以,是很麻烦,不推荐使用。本回答被提问者和网友采纳
请教excel汇总问题。vba
请教下 我有一个表 A列 日期 B列 供应商 C列 产品 列数量 B列和C列是多对多关系 我想新建一个表统计 A 列供应商 B列产品 C列统计各日期的产品总和。第一图为实际图。第2图为要达到的效果图。求VBA的编写方式 谢谢。
我的2859782009
dim d,arr,r&
Set d= CreateObject("Scripting.Dictionary")
arr=sheets(1).usedrange.value
for r=2 to ubound(arr)
d(arr(r,2)&"+"&arr(r,3))= d(arr(r,2)&"+"&arr(r,3))+arr(r,4)
next
with sheets(2)
.[a2].resize(d.count,1)=application.transpose(d.keys)
.Range("a2:a"&d.count+1).TextToColumns Destination:=Range("a2"), Other:=True, OtherChar:="+"
.[c2].resize(d.count,1)=application.transpose(d.items)
end with
set d=nothing
end sub
怎么感觉和其他题有点像
没有excel,没调试
==================
修改下,试试看吧
追问麻烦在帮忙看看。谢谢
看
excel卸掉了还没装好。。下载速度太慢了
首先你要确定你第一张图的sheet名 。。还有第二张图的sheet名
sheets(1)=改成 sheets(" ") 双引号内填上你源数据的表名 。注意,双引号也是要的
sheets(2) 同上
如果还不知道怎么做,可以新建两个表, 一张表叫源数据,把你第一图上的所有数据复制去,第于个表叫汇总。a1:c1填上字段名就可以了
然后,sheets(1) 改成 sheets("源数据")
sheets(2) 改成 sheets("汇总")
sheets(1) 名字就是sheets(1)
sheets(2)表新建一个表生成数据 名字
你确定?
算了,也有人回复了,我相信你现在应该也成功了,
好吧,祝 好运。。
能不能说傻瓜一点呵呵。我不知道具体该怎么做。帮帮忙
追答以下是代码,请测试!
Sub FLHZ()Dim dc As Object, arr
Set dc = CreateObject("Scripting.Dictionary")
arr = Range("B2:D" & [b65536].End(3).Row)
Dim i As Long
For i = 1 To UBound(arr)
dc(arr(i, 1) & "-" & arr(i, 2)) = Val(dc(arr(i, 1) & "-" & arr(i, 2))) + arr(i, 3)
Next
Dim ar
ar = dc.keys
With Sheet2
.[a1] = "供应商"
.[b1] = "药品"
.[c1] = "数量汇总"
For i = 0 To UBound(ar)
.Cells(i + 2, "A") = Split(ar(i), "-")(0)
.Cells(i + 2, "B") = Split(ar(i), "-")(1)
.Cells(i + 2, "C") = dc(ar(i))
Next
.Range("A2:C" & .[c65536].End(3).Row).Sort key1:=.[a2], key2:=.[b2]
End With
MsgBox "汇总完毕!"
Sheet2.Activate
Sheet2.[a1].Select
End Sub
数据透视表 alt+d+p 多重合并计算区域 出来的效果。
不知道是操作没对还是啥情况
直接QQ说话?
追问2859782009 。谢谢
参考技术D 一定要用VBA吗?用数据透视表简单几步就可实现你的要求。追问帮忙讲讲 谢谢。我可能操作不对。
追答选择B、C、D列,点菜单-数据-数据透视表,建立透视表,在当前表点一个位置,下一步,布局,将供应商拖入列、药品拖入行,数量拖入数据,确定即可。
以上是关于请教,使用Excel VBA编程,如何在文本框中具有右键功能?然后可以复制/粘贴。谢谢。的主要内容,如果未能解决你的问题,请参考以下文章
如何在VBA中的用户窗体上使用组合框和文本框来搜索和查找活动Excel电子表格中的数据?