Excel中设置命名通过C#范围? [英] Set Excel Named Ranges via C#?

查看:121
本文介绍了Excel中设置命名通过C#范围?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图复制使用C#此访问VBA代码,但我不能这样做。
想知道是否有人尝试过​​这一点,并可以提供帮助。



oWB.Worksheets(签收)。范围(rgSignOffRecTemplate)。值= g_TemplatePath &安培; Signoff_Rec.XLT



rgSignOffRecTemplate 是一个定义的名称中的Excel模板,我试图写。



您的帮助非常感谢。


解决方案

 私人无效ThisWorkbook_Startup(对象发件人,发送System.EventArgs)
{
Excel.Name ONAME;
Excel.Range橙色;

//'使用名称
ONAME = ExcelWorkbook1.Globals.ThisWorkbook.Names.Item(rgSignOffRecTemplate,失踪,失踪);
oName.RefersToRange.Value2 =点击这里;

//'使用范围
ONAME = this.Names.Item(rgSignOffRecTemplate,失踪,失踪);
橙色= oName.RefersToRange;
oRange.Value2 =我在这里;

//'直接访问
this.Names.Item(rgSignOffRecTemplate,失踪,失踪).RefersToRange.Value2 =在这里我再次

DisplayWorkbookNames();

}

私人无效DisplayWorkbookNames(){
的for(int i = 1; I< = this.Names.Count - 1;我++){
Globals.Sheet1.Range [A+ i.ToString(),失踪] .Value2 = this.Names.Item(I,失踪,失踪);
}
}


I'm trying to replicate this Access VBA code using C#, but am unable to do so. Wondering if anyone else has tried this before and can help.

oWB.Worksheets("Signoff").Range("rgSignOffRecTemplate").Value = g_TemplatePath & "Signoff_Rec.XLT"

rgSignOffRecTemplate is a "Defined Name" in the Excel template that I'm trying to write to.

Many thanks for your help.

解决方案

    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        Excel.Name oName;
        Excel.Range oRange;

        //'using name
        oName = ExcelWorkbook1.Globals.ThisWorkbook.Names.Item("rgSignOffRecTemplate", missing, missing);
        oName.RefersToRange.Value2 = "here";

        //'using range
        oName = this.Names.Item("rgSignOffRecTemplate", missing, missing);
        oRange = oName.RefersToRange;
        oRange.Value2 = "here i am";

        //'direct access
        this.Names.Item("rgSignOffRecTemplate", missing, missing).RefersToRange.Value2 = "here i am again";

        DisplayWorkbookNames();

    }

    private void DisplayWorkbookNames() {
        for (int i = 1; i <= this.Names.Count - 1; i++) {
            Globals.Sheet1.Range["A" + i.ToString(), missing].Value2 = this.Names.Item(i, missing, missing);
        }
    }

这篇关于Excel中设置命名通过C#范围?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆