Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从单元格中获取Objectmember_Vba_Excel - Fatal编程技术网

Vba 从单元格中获取Objectmember

Vba 从单元格中获取Objectmember,vba,excel,Vba,Excel,我想动态创建图表,并遇到一个问题 通常(静态)我使用 选择。位置=XLLabelPositionLower 一切正常。现在我想从一个像 选择。位置=范围(“H18”)。值2 我刚刚将下面的XLLabelPostion写入H18 但是现在我得到一个运行时错误:438:Object不支持该方法 我只是不知道该怎么办。我的猜测是,我不能使用“xllabelpositiondown”作为字符串,但我无法确定它是否属于其他类型 我认为我们在评论中没有回答您的问题。您希望在工作表上放置一些值以影响代码 好的

我想动态创建图表,并遇到一个问题

通常(静态)我使用

选择。位置=XLLabelPositionLower

一切正常。现在我想从一个像

选择。位置=范围(“H18”)。值2

我刚刚将下面的XLLabelPostion写入H18

但是现在我得到一个
运行时错误:438:Object不支持该方法


我只是不知道该怎么办。我的猜测是,我不能使用“xllabelpositiondown”作为字符串,但我无法确定它是否属于其他类型

我认为我们在评论中没有回答您的问题。您希望在工作表上放置一些值以影响代码

好的,我们可以使用常量和范围的名称,所以我们可以定义一个常量,稍后再引用它

Option Explicit

Sub DefineMySymbol_RunOnce()
    Sheet1.Names.Add "xlLabelPositionBelow", 1
    Sheet1.Range("H18").Value2 = "xlLabelPositionBelow"  '* this is just a string


End Sub

Sub UsingValueFromSheet()

    '* here we will pull out the constant (1) and cast to a variable
    Dim eDataLabelPosition As Excel.XlDataLabelPosition
    eDataLabelPosition = CLng(Split(Sheet1.Names.Item(Sheet1.Range("H18").Value2).RefersTo, "=")(1))

    '* eDataLabelPosition should now appear in Locals Window as xlLabelPositionBelow
    Stop

    '* and now you can set you Position
    'Selection.Position = eDataLabelPosition

End Sub

我认为我们在评论中没有回答你的问题。您希望在工作表上放置一些值以影响代码

好的,我们可以使用常量和范围的名称,所以我们可以定义一个常量,稍后再引用它

Option Explicit

Sub DefineMySymbol_RunOnce()
    Sheet1.Names.Add "xlLabelPositionBelow", 1
    Sheet1.Range("H18").Value2 = "xlLabelPositionBelow"  '* this is just a string


End Sub

Sub UsingValueFromSheet()

    '* here we will pull out the constant (1) and cast to a variable
    Dim eDataLabelPosition As Excel.XlDataLabelPosition
    eDataLabelPosition = CLng(Split(Sheet1.Names.Item(Sheet1.Range("H18").Value2).RefersTo, "=")(1))

    '* eDataLabelPosition should now appear in Locals Window as xlLabelPositionBelow
    Stop

    '* and now you can set you Position
    'Selection.Position = eDataLabelPosition

End Sub

XLLabelPositionLower是表示数字而不是字符串的符号。奇怪的是,在我的对象浏览器中找不到这个符号。啊,你打错了!!你知道什么数字代表什么位置吗?正在检查msdn我找不到它请检查所述符号的拼写。XLLabelPositionLower vs XLLabelPositionLower,你掉了一个i。正确的符号解析为数字1。
xlLabelPositionBelow
的值为1,检查MSDN的此链接:找到数字的最简单方法是在即时窗口中键入
?xlLabelPositionBelow
。xlLabelPositionBelow是表示数字而不是字符串的符号。奇怪的是,在我的对象浏览器中找不到这个符号。啊,你打错了!!你知道什么数字代表什么位置吗?正在检查msdn我找不到它请检查所述符号的拼写。XLLabelPositionLower vs XLLabelPositionLower,你掉了一个i。正确的符号解析为数字1。
xlLabelPositionBelow
的值为1,检查MSDN的此链接:找到数字的最简单方法是在即时窗口中键入
?xlLabelPositionBelow