Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 将数据从Excel加载到类中_Vba_Excel - Fatal编程技术网

Vba 将数据从Excel加载到类中

Vba 将数据从Excel加载到类中,vba,excel,Vba,Excel,我在VBA中创建了一个带有几个私有变量的类 Private pVar1 as Double Private pVar2 as Double ... 对于每个变量,我有一对属性Get/Let 在Excel中,我有一系列标签(在a列)和值(在B列),每一个都匹配一个变量。将这些数据从Excel读取到VBA的最佳方法是什么 我看过了,但在这种情况下并不完全合适 这是我唯一可以使用的解决方案 Dim obj as new myClass obj.property1 = range("b1").valu

我在VBA中创建了一个带有几个私有变量的类

Private pVar1 as Double
Private pVar2 as Double
...
对于每个变量,我有一对
属性Get/Let

在Excel中,我有一系列标签(在a列)和值(在B列),每一个都匹配一个变量。将这些数据从Excel读取到VBA的最佳方法是什么

我看过了,但在这种情况下并不完全合适

这是我唯一可以使用的解决方案

Dim obj as new myClass
obj.property1 = range("b1").value
obj.property2 = range("b2").value
...
或者有没有办法选择哪个
obj.property
I根据
range(“a1”).value给哪个
赋值?

您的链接很好地涵盖了“映射列位置到属性”。你可以:

For iRow = lo to hi
  propname = ws.cells(iRow, 1)
  Select Case propname
  Case "alpha": obj.Alpha = ws.cells(iRow, 2)
  ..
  Case Else: Msgbox "Oops"
  End Select
Next iRow
您的链接很好地涵盖了“将列位置映射到属性”。你可以:

For iRow = lo to hi
  propname = ws.cells(iRow, 1)
  Select Case propname
  Case "alpha": obj.Alpha = ws.cells(iRow, 2)
  ..
  Case Else: Msgbox "Oops"
  End Select
Next iRow
您的链接很好地涵盖了“将列位置映射到属性”。你可以:

For iRow = lo to hi
  propname = ws.cells(iRow, 1)
  Select Case propname
  Case "alpha": obj.Alpha = ws.cells(iRow, 2)
  ..
  Case Else: Msgbox "Oops"
  End Select
Next iRow
您的链接很好地涵盖了“将列位置映射到属性”。你可以:

For iRow = lo to hi
  propname = ws.cells(iRow, 1)
  Select Case propname
  Case "alpha": obj.Alpha = ws.cells(iRow, 2)
  ..
  Case Else: Msgbox "Oops"
  End Select
Next iRow

A1包含属性名称,您可以使用CallByName:

callbyname obj, Range("A1").Value, VbLet, Range("B1").value

例如。

A1包含属性名,您可以使用CallByName:

callbyname obj, Range("A1").Value, VbLet, Range("B1").value

例如。

A1包含属性名,您可以使用CallByName:

callbyname obj, Range("A1").Value, VbLet, Range("B1").value

例如。

A1包含属性名,您可以使用CallByName:

callbyname obj, Range("A1").Value, VbLet, Range("B1").value

例如。

代码如何确定要使用哪个属性?如果A1包含属性名,您可以使用CallByName:
CallByName obj,Range(“A1”)。例如,Value,VbLet,Range(“B1”)。Value
。我必须调查这个CallByName-以前从未听说过!这正是我想要的。做一个回答,我就接受。代码如何决定使用哪个属性?如果A1包含属性名,您可以使用CallByName:
CallByName obj,Range(“A1”)。例如,Value,VbLet,Range(“B1”)。Value
。我必须调查这个CallByName-以前从未听说过!这正是我想要的。做一个回答,我就接受。代码如何决定使用哪个属性?如果A1包含属性名,您可以使用CallByName:
CallByName obj,Range(“A1”)。例如,Value,VbLet,Range(“B1”)。Value
。我必须调查这个CallByName-以前从未听说过!这正是我想要的。做一个回答,我就接受。代码如何决定使用哪个属性?如果A1包含属性名,您可以使用CallByName:
CallByName obj,Range(“A1”)。例如,Value,VbLet,Range(“B1”)。Value
。我必须调查这个CallByName-以前从未听说过!这正是我想要的。这是一个非常好的方法,从健壮代码的角度来看可能“更好”。也可以添加常量,而不是硬编码文本。我肯定会在未来的工作中使用这种方法,但对于我目前的项目,另一个答案更好。谢谢你!这是一种非常好的方法,从健壮代码的角度来看可能“更好”。也可以添加常量,而不是硬编码文本。我肯定会在未来的工作中使用这种方法,但对于我目前的项目,另一个答案更好。谢谢你!这是一种非常好的方法,从健壮代码的角度来看可能“更好”。也可以添加常量,而不是硬编码文本。我肯定会在未来的工作中使用这种方法,但对于我目前的项目,另一个答案更好。谢谢你!这是一种非常好的方法,从健壮代码的角度来看可能“更好”。也可以添加常量,而不是硬编码文本。我肯定会在未来的工作中使用这种方法,但对于我目前的项目,另一个答案更好。谢谢你!