我想从动态生成的单元格引用列表中创建一个excel.range对象。

Excel.Range outputRange = sheet.get_Range(strCellRange, Type.Missing);

因为strcellrange可以变得很大,所以它会给出com异常。
因此我想把它简化成带并集的范围表示法。
例如
string strCellRange = "F2,G2,H2,I2,J2,K2,L2,F7,G7,H7,I7,J7,K7,L7,F12,G12,H12,I12,J12,K12,L12,F17,G17,H17,I17,J17,K17,L17,F22,G22,H22,I22,J22,K22,L22,F27,G27,H27,I27,J27,K27,L27";


string strCellRange = "F2:L2,F7:L7,F12:L12,F17:L17,F22:L22,F27:L27";

有没有excel方法来创建包含大量单元格引用的range对象?
是否有已知的算法来实现上述简化(矩阵算法)?

最佳答案

加扬,
VBA中,可以使用

Sub Test()
Dim rng1 As Range
Dim strCellRange As String
strCellRange = "F2,G2,H2,I2,J2,K2,L2,F7,G7,H7,I7,J7,K7,L7,F12,G12,H12,I12,J12,K12,L12,F17,G17,H17,I17,J17,K17,L17,F22,G22,H22,I22,J22,K22,L22,F27,G27,H27,I27,J27,K27,L27"
Set rng1 = Range(strCellRange)
Set rng1 = Union(rng1, rng1)
Debug.Print rng1.Address
End Sub

08-04 15:12