我正在尝试构建一个允许用户同时格式化多个不同文档的小宏。
我希望用户能够进入包含特定文本宏的文档中的特定单元格。
然后我希望能够在宏中绘制这段文本,同时影响不同的文档。
例如,添加另一列的代码可能会说
Worksheets(1).Range("A1").EntireColumn.Insert
我希望它能够在主文档中绘制一个值,而不是指定列(A)。例如,用户键入" G"进入特定单元格,然后单击一个按钮来运行宏,宏将根据主机文档中的值动态地知道它所针对的所有excel文档中的列G。
我希望这是有道理的。
我应该考虑使用哪种功能的建议来实现这项功能?
答案 0 :(得分:0)
“关于我应该关注的那类功能的任何建议?” 这里有几个......
获取输入的值...
如果单元格始终位于同一地址,请说A1:
#Setting a center with the conjugation of the first set of Quaternions
centre = libmyo.Quaternion(myo.orientation[0], myo.orientation[1], myo.orientation[2], myo.orientation[3]).conjugate()
while True:
obj = libmyo.Quaternion(myo.orientation[0], myo.orientation[1], myo.orientation[2], myo.orientation[3])
#Multiplying the current Rotation with the centre
frame = obj.__mul__(centre).conjugate()
x= frame[0]
y= frame[1]
z= frame[2]
w= frame[3]
roll = math.atan2(2*y*w - 2*x*z, 1 - 2*y*y - 2*z*z)
pitch = math.atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
yaw = math.asin(2*x*y + 2*z*w)
print(roll, pitch, yaw)
time.sleep(0.2)
或代替使用' Define a string variable and set it equal to value in A1
Dim cellText as String
cellText = ThisWorkbook.ActiveSheet.Range("A1").Value
,您也可以使用Range
来获取行号和列号。
Cells
如果单元格发生变化,那么您可能需要查看cellText = ThisWorkbook.ActiveSheet.Cells(1, 1).Value
函数以查找输入单元格旁边的标签/标题。然后你可以使用它(很容易用Find
)来引用输入......
一旦你有了这个变量,你可以用它做你喜欢的事。
要将此值放入名为“MyWorkbook”的另一个(打开)工作簿中的单元格B3,以及名为“MySheet”的工作表,您可以执行以下操作:
Cells
要在Application.Workbooks("MyWorkbook").Sheets("MySheet").Range("B3").Value = cellText
插入列,请执行
cellText
值得注意的是,Application.Workbooks("MyWorkbook").Sheets("MySheet").Range(cellText & "1").EntireColumn.Insert
将字符串连接在一起,所以如果
&
然后
cellText="B"
除了关于在工作表之间移动值的注释之外,请参阅我的第一个示例,但始终引用相同的工作簿。如果你发现自己反复输入类似的内容
cellText & "1" = "B1"
然后您可以使用ThisWorkbook.Sheets("MySheet").<other stuff>
简写。
With
需要注意的重要一点是,此代码在使用之前没有数据验证来检查单元格的值!只是尝试根据可能任何的值插入列,肯定会使宏崩溃在其第一个真实世界中使用!