获取两个字符串变量的单元格值

时间:2015-06-17 21:01:09

标签: excel vba excel-vba

我在Excel中有一个二维图表。我需要使用两个字符串变量来获取单元格的值。该图表如下所示:

Document     person1    person2
Text1        5          8
Text2        2          1
Text3        9          6

在网上看后,我发现这很困难,因为:

  1. 值是字符串,而不是整数;
  2. 字符串将根据出现的人和文档组合而改变。
  3. 这应该是唯一相关的代码:

    Dim document as string
    Dim person as string
    
    Dim oExcel as excel.application
    Dim oWB as workbook
    Set oExcel = New Excel.application
    Set oWB = oExcel.Workbooks.open.      ("C:")
    oExcel.Visible = True
    
    oWB.Sheets ("sheet1").Cells(documemt, person)
    

3 个答案:

答案 0 :(得分:0)

假设文档和person是包含整数字符串表示的字符串变量(例如document =“1”,person =“2”),那么

oWB.Sheets ("sheet1").Cells(val(document), val(person))

会奏效。如果字符串变量的内容更复杂,那么您需要对这些字符串进行一些解析。

答案 1 :(得分:0)

假设“2d Chart”是指工作表中的一个表,那个人将是全文“person1”或“person2”等,同样对于文档,那么也许这个函数可以解决问题。

Dim result As Variant
result = FindDocPerson("person2", "text1")

If Application.WorksheetFunction.IsError(result) Then
    ' handle it
Else
    ' found it
End If

调用语法:

extension=php_pdo_sqlsrv_55_ts.dll

答案 2 :(得分:0)

您的代码中存在拼写错误

oWB.Sheets ("sheet1").Cells(documemt, person)

documemt应该是文档

除了目前还不清楚你想做什么之外,你还可以提供更多的描述吗?

我们所知道的是你需要使用两个字符串变量来获取单元格的值,它可以是字符串或数字。您发布的代码并未提供更多关于您目标的提示。

要在字符串和数字之间进行转换,您可以使用CLng转换为长数字或CStr转换为字符串。例如,CLng(“3”)= 3,CStr(3)=“3”

在你的代码中:

Set oWB = oExcel.Workbooks.open.      ("C:")

因为你试图在没有指定名称的情况下打开工作簿而不起作用,我还注意到(“C:”)在命令调用的右边间隔很远,这使我相信这是已经输入的自由式,即不在VBE中。这使得解码您的要求变得更加困难。

最后,这段代码:

Set oExcel = New Excel.application

为什么要从Excel VBA代码启动另一个Excel会话?此代码是否在Excel以外的其他地方,即Outlook / Access / PowerPoint / Word / Business Objects等等。