我刚刚用VBA在Excel中为我的学校项目构建了一个国际象棋游戏。 我的构建方式是每件作品都有一个数字和一个颜色(绿色/红色):
1 - Pawn (x16)
2 - King (x2)
3 - Queen (x2)
4 - Bishop (x4)
5 - Night (x4)
6 - Rook (x4)
这样看起来就更好了,我想添加跟随数字的每张图片,或者随VBA的推荐而移动,并伴随着对作品的推荐。 如果可能的话,我更喜欢第一种选择,但第二种也不错。 我现在移动棋子的方式是这样的:
MoveNum = Range(Range("j2").Value).Value
Range(Range("j2").Value).Value = 0
Range(Range("j2").Value).FormulaR1C1 = ""
Range(Range("j2").Value).Font.Color = -0
Range(Range("k2").Value).Value = MoveNum
Range(Range("k2").Value).Font.Color = RGB(210, 0, 0)
(这是移动红色块的那个,它与绿色之间的唯一区别是RGB是(0,175,20)而不是(210,0,0) 顺便说一句,我的整个代码都是基于数字的,所以不能选择/不使用它们。
答案 0 :(得分:1)
一种省时的选择是使用Unicode个字符而不是图像:
这些是Unicode 9812至9823,您可以使用UNICHAR
工作表函数或VBA中的ChrW
函数将它们添加到Excel。
此外,您只需从上方复制并将其粘贴,直接插入工作表中,然后像对待其他任何文本(包括字体大小)一样进行操作即可。
当我需要一个符号或图标时(或标识一个),我首选的外观是 https://codepoints.net 。截至2019年3月,Unicode包含近140,000个字符,并且还在不断增加。
(请务必在petition上签名,以添加便盆表情符号!) < / p>
如果您的作业特别要求您使用图像,则可以:
.Top
.Left
和Shapes object属性
.Top
的.Left
和Range object属性来找到单元格的位置。示例:
Option Explicit
Sub movePicToCell()
'move the image named "Picture 2" on worksheet "Sheet1" to cell "C3"
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Shapes("Picture 2").Top = ws.Range("C3").Top
ws.Shapes("Picture 2").Left = ws.Range("C3").Left
End Sub