(Excel VBA) - 从宏中的单元格文本中绘制

时间:2016-12-09 14:44:29

标签: excel vba excel-vba text cell

我正在尝试构建一个允许用户同时格式化多个不同文档的小宏。

我希望用户能够进入包含特定文本宏的文档中的特定单元格。

然后我希望能够在宏中绘制这段文本,同时影响不同的文档。

例如,添加另一列的代码可能会说

Worksheets(1).Range("A1").EntireColumn.Insert

我希望它能够在主文档中绘制一个值,而不是指定列(A)。例如,用户键入" G"进入特定单元格,然后单击一个按钮来运行宏,宏将根据主机文档中的值动态地知道它所针对的所有excel文档中的列G。

我希望这是有道理的。

我应该考虑使用哪种功能的建议来实现这项功能?

1 个答案:

答案 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

需要注意的重要一点是,此代码在使用之前没有数据验证来检查单元格的值!只是尝试根据可能任何的值插入列,肯定会使宏崩溃在其第一个真实世界中使用!