gpt4 book ai didi

excel - 如何根据excel VBA中形状(或文本框或图片)的移动来更改单元格的值

转载 作者:行者123 更新时间:2023-12-04 20:21:12 25 4
gpt4 key购买 nike

我没有接受过任何编码方面的培训,但过去曾设法使用我在网上找到的代码作为 excel 的一部分,或者使用宏或按钮和其他东西进行访问。这有点难以确定是否可能。
我一直试图在 excel 中找出某种方法来引用相对于单元格的文本框或形状位置(例如,图片一个在单元格 A1 中,因此在某处建立了两者之间的链接)。
实际应用是:我有指定的类(class)领域,例如A类(面积为A1:A6)和B类(面积为B1:B6),我为每个学习者准备了一张图片(或形状/文本框)或其他东西。如果我将学习者图片放在单元格范围 A1:A6 中,图片应该以某种方式与类(class)联系起来。
我在网上找到了一些我独立尝试过的代码,它们可以工作(很抱歉没有提到我从哪里/谁找到了它们),我想如果我能以某种方式将它们结合起来,我可能会做我需要的事情。
首先是编写一个按钮来查看事件工作表上的所有形状并在某处列出它们的名称,我发现了两个部分:

Private Sub CommandButton1_Click()
Dim x&
With Sheets("sheet1")
For x = 1 To .Shapes.Count
Sheets("sheet2").Cells(x, 1).Value = .Shapes(x).Name
Next
End With
End Sub

Private Sub CommandButton3_Click()
Dim iCount As Integer
For iCount = 1 To ActiveSheet.Shapes.Count
Cells(iCount, 1).Value = ActiveSheet.Shapes(iCount).Name
Next iCount
End Sub
我还找到了选择在某些单元格范围内找到的形状的代码:
Private Sub CommandButton5_Click()
Dim shp As Shape
Dim r As Range

Set r = Range("A1:A3")

For Each shp In ActiveSheet.Shapes
If Not Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), r) Is Nothing Then _
shp.Select Replace:=False
Next shp
End Sub
另一个用于创建对单元格数组中所有形状的引用(据我所知)
Sub Shapepicker()

Dim s As Shape, sr As ShapeRange
Dim Arr() As Variant
Set mycell = Range("A:A")
rrow = "A1"

i = 1
For Each s In ActiveSheet.Shapes
If s.TopLeftCell = rrow Then
ReDim Preserve Arr(1 To i)
Arr(i) = s.Name
i = i + 1
End If
Next s

Set sr = ActiveSheet.Shapes.Range(Arr)
结束子
我已经尝试将代码片段拼凑在一起,将在特定单元格范围内找到的形状的名称放置在某个地方,但我无法以我有限的知识使其工作。
任何帮助,将不胜感激。

最佳答案

不确定您到底想要什么输出,但是对于 2 个类,这会将形状放在 A 列中的一个类中,而将其他形状放在 B 列中。

Private Sub CommandButton1_Click()

Dim shp As Shape
Dim r1 As Range, r2 As Range

Set r1 = Range("C3:F5") 'class 1
Set r2 = Range("G12:H15") 'class 2

For Each shp In ActiveSheet.Shapes
If Not Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), r1) Is Nothing Then Cells(Rows.Count, 1).End(xlUp)(2).Value = shp.Name
If Not Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), r2) Is Nothing Then Cells(Rows.Count, 2).End(xlUp)(2).Value = shp.Name
Next shp

End Sub

关于excel - 如何根据excel VBA中形状(或文本框或图片)的移动来更改单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72053956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com