我有几个包含其他单元格地址的单元格,例如:
我想将每个值的行分配给变量并附加不同的列。我试过这样做但没有成功:
Dim X1 As String
Dim X2 As String
Dim Y1 As String
Dim Y2 As String
Dim ChtSheet As Chart
Set ChtSheet = ActiveWorkbook.Charts.Add
.
X1 = "C" & Sheets("Sheet1").Range("K6").Rows.Value 'I want X1 = "$C$95"
X2 = "C" & Sheets("Sheet1").Range("K7").Rows.Value 'I want X2 = $C$137
Y1 = Sheets("Sheet1").Range("K6").Value 'where the value in this cell is $F$95
Y2 = Sheets("Sheet1").Range("K7").Value 'Where the value in this cell is $F$137
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
让我们专注于含有$ F $ 95的K6:
X1 = Sheet1.Range(Sheet1.Range("K6").Value).EntireRow.Cells(1, "C").Address
将产生“$ C $ 95”。
请注意,Sheet1被假定为Excel选项卡上名为“Sheet1”的工作表的CodeName。 CodeName是一种更好的方式来引用工作表,因为即使从Excel重命名工作表,它也保持不变。您可以通过单击Project Explorer中的工作表并显示其属性(F4),从VBA编辑器中查看和更改工作表的CodeName;只需指定(名称)属性。
上面的原理是使用K6中的值(一个地址)来获取该地址指向的范围,然后考虑整个行的单元格位置(1,“C”),即第1行,列“C”。无论K6中提到哪一列,结果都会以“C”列结束。
不确定你想用X1做什么;你通常不需要这个字符串,因为你可以使用范围:
Dim myRange As Excel.Range
Set myRange = Sheet1.Range(Sheet1.Range("K6").Value).EntireRow.Cells(1, "C") 'Who cares about the address :-)
'... do something with this range...