Excel 名称范围=2个命名范围的值

Excel 名称范围=2个命名范围的值,excel,vba,excel-formula,Excel,Vba,Excel Formula,我在a列中得到一个命名范围,它是B/C列中命名范围的长度(查询结果) 现在我希望A列的B列和C列的信息都用“-”分隔 范围1==偏移量(表1!$A$1,0,0,COUNTA(常数!$B:$B),1) 范围2==偏移量(表1!$B$1,0,0,COUNTA(常数!$B:$B),1) 范围3==偏移量(表1!$C$1,0,0,COUNTA(Constances!$C:$C),1) 我想的是=Range1=Range2&“-”&Range3 是否要在Excel中修复此问题,以便在每次工作表启动时自动执

我在a列中得到一个命名范围,它是B/C列中命名范围的长度(查询结果)

现在我希望A列的B列和C列的信息都用“-”分隔

范围1=
=偏移量(表1!$A$1,0,0,COUNTA(常数!$B:$B),1)

范围2=
=偏移量(表1!$B$1,0,0,COUNTA(常数!$B:$B),1)

范围3=
=偏移量(表1!$C$1,0,0,COUNTA(Constances!$C:$C),1)

我想的是=
Range1=Range2&“-”&Range3


是否要在Excel中修复此问题,以便在每次工作表启动时自动执行?或者,可以使用VBA代码解决此问题吗?

有一种方法,只要打开文件,代码就会运行。代码需要放在ThisWorkbook模块中

Private Sub Workbook_Open()

Range("Range1").Value = Evaluate("=Range2 & ""-"" & Range3")


With Sheets("Constances")
    With .Range("B1", .Range("B" & Rows.Count).End(xlUp)).Offset(, -1)
        .Clear
        .Formula = "= B1 & ""-"" & C1"
        .Value = .Value 'this removes formulae
    End With
End With

End Sub

发现了一个问题,出于某种原因,range1比range2/3更进一步,并填充了一系列N/a,在另一种情况下,它没有达到完整范围,并给出了N/a而不是实际值。range1是根据range2的大小定义的。如果范围2发生变化,那么范围1也会发生变化。如果Range2缩小,您可能需要在添加公式之前添加一行以清除a列。此外,代码仅在文件打开时运行,因此您可能需要重新考虑。@SRJ将其添加到按钮中。首先,我让查询填充B列和C列,在Excel中,我检查范围1,它与Columb B和C列位于同一行。我用您给我的代码按下按钮,范围变为其他内容。(有时比范围小,有时比范围大)据我所知,我已经回答了您的问题,无法复制您的问题,因此我认为这与您的数据查询有关。我在上面添加了另一个公式,它不依赖于您指定的范围。