标签: excel-2007

使用 VBA 对 excel 文件执行所有操作后,如何取回原始文件?

谁能告诉我如何撤消对工作簿的所有更改?我有文件 excel1.xlsx,我使用 vba 对 excel.xlsx 进行了排序和许多操作。但最后我希望 excel1.xlsx 与开始时相同。如何使用 vba 撤消所有更改?

 activeworkbook.saved = True
Run Code Online (Sandbox Code Playgroud)

我发现它保留了开始时的所有内容,但它不起作用。所以有什么命令可以在对它执行操作后取回我的原始文件。嗯,是

              wb1.Sheets(1).Activate
              ActiveWorkbook.Close savechanges:=False
Run Code Online (Sandbox Code Playgroud)

它有效,但我不希望我的工作簿被关闭它应该仍然打开。我该怎么做?提前致谢。

excel vba excel-2007

4
推荐指数
1
解决办法
9598
查看次数

为什么Excel Interop会在处理文件后删除图像?

Excel Interop正在从已处理的文件中删除图像.

我正在使用Excel Interop,没有第三方组件(我知道).工作流程是 - 创建文件(模板)的副本(目标),填充单元格,更改单选按钮状态

  1. 创建预先存在的.xslm文件(模板)的副本(目标)
  2. 通过Excel Interop打开目标
  3. 填充目标单元格,更改单选按钮状态
  4. 带有图像的工作表不会被修改
  5. 关闭目标

在我的开发机器上,目标文件看起来很棒 - 所有内容都已填充,图像存在.注意:在我的开发机器上,我正在运行VS2010 IDE中的代码.

在生产机器上 - 一切都已填充,但图像不存在.相反,会出现以下错误: NB:在生产计算机上,它作为服务运行,具有本地服务帐户.

"在文件中找不到关系ID为rId1的图像部分" 在文件中找不到关系ID为rId1的图像部分

通过以下代码打开整个工作簿:

var workbook = workbooks.Open(targetPath
     0, false, 5, Type.Missing, Type.Missing, false, XlPlatform.xlWindows, "",
     true, false, 0, true, false, false);
Run Code Online (Sandbox Code Playgroud)

请注意,代码中不会处理带有图像的工作表.

工作簿(和个人工作表)受到保护.但是,受保护的模板在开发中正确处理,但不在生产中.我不认为保护与它有任何关系(但谁知道,对吧?这是Interop.呃).

该文件由另一方创建,所有组件(即图像)都位于.xslm结构中,而不是作为另一个服务器的链接.

我已经验证图像在模板文件中的生产计算机上可见,但不在处理过的文件中.

为了确认这不是在制作中打开文件的问题,我通过电子邮件发送了一份副本,图像仍然不存在.

我还确认,在我的开发机器上,处理过的文件确实有可见的图像.

我不保护工作表,并解压缩文件结构..jpg文件确实不存在于生产机器的已处理目标中.

还有一个注意事项 - Office 2010安装在我的开发计算机上,但是Office 2007安装在生产计算机上.结果,我正在使用Office 12 Interop.在任一环境中都不会生成运行时错误.

我正在使用Interop(而不是OpenXml库),因为存在必须填充的ActiveX控件.但请注意,没有任何ActiveX控件存在任何问题 - 它们工作正常.它只是从处理过的文件中消失的图像文件(它们在模板文件中呈现得很好).

更新说明:还有其他四个图像文件,全部.emf在不同的工作表上; 他们都被剥夺了.

c# excel-2007 excel-interop excel-2010

4
推荐指数
1
解决办法
5920
查看次数

嵌套/分层折叠并在Excel或其他应用程序中扩展

我想在Excel中分层折叠/展开,或者在Excel中然后在任何其他应用程序中分层折叠/展开。例如我有:

  ABC
   -abcd
   -abc1
   -abc2
      -a1
      -a2
        -MM2
        -NN2
      -a3
    -abc3
Run Code Online (Sandbox Code Playgroud)

当我想看到的是:

+ABC _further if I expand ABC- I should get_
ABC
 -abcd
 -abc1
 +abc2 _likewise_.
Run Code Online (Sandbox Code Playgroud)

我在MS-EXCEL中尝试了数据分组和取消分组,但是没有成功,也没有在互联网上找到满意的答案。

excel-2007

4
推荐指数
1
解决办法
2万
查看次数

从命令行创建excel文件

有没有办法从命令行创建一个新的Excel文件?提前致谢.

excel command excel-2007

4
推荐指数
2
解决办法
1万
查看次数

Excel 自定义十进制数字格式尾随点

当我设置自定义数字格式时#0.####,它可以很好地处理整数123& 123.23,但它不能处理像这样的十进制数字123.00,因为它显示为123.

如何设置正确的数字格式以免.末尾显示 ?

excel excel-2007 number-formatting

4
推荐指数
2
解决办法
4471
查看次数

用于比较时间值的公式

以下excel公式工作正常但在某些情况下它没有给我适当的价值.

输入:

19:20:42
24:58:36
26:11:18
Run Code Online (Sandbox Code Playgroud)

使用此公式后:

 =IF(TIMEVALUE(K7)>TIMEVALUE("09:00:00"),TRUE,FALSE)
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

FALSE
TRUE
TRUE
Run Code Online (Sandbox Code Playgroud)

如果时间值>或= 24:00:00,我会观察到它不会给我正确的答案.我该如何解决?

excel vba excel-2007 excel-vba excel-formula excel-2010

4
推荐指数
1
解决办法
5万
查看次数

如何提取单元格字符串中的六位数字?

我有一列数据:

纽约真的很好,456983 美食
北京很棒 678932,文化很好。
... 等等

我想提取六位数字并将其放置在原始列旁边的列中。

有 n 行。

有没有办法不用VBA,用公式来做到这一点?

excel vba excel-2007 excel-formula

4
推荐指数
1
解决办法
2万
查看次数

如何使用 VBA excel 从资源中获取 og:image

我如何og:image从资源中获取VBA excel 2007

例如,这个网址:

https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus
Run Code Online (Sandbox Code Playgroud)

excel vba excel-2007

4
推荐指数
1
解决办法
132
查看次数

VBA使用循环引用TextBox或Label

我想替换以下内容:

txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.text = ""
...continues for quite awhile
Run Code Online (Sandbox Code Playgroud)

附:

Dim cCont As Control

For Each cCont In Me.Controls

If TypeName(cCont) = "TextBox" Then
'reset textbox value
   ???
End If
Next cCont
Run Code Online (Sandbox Code Playgroud)

如何使用通用"控件"来引用文本框?

excel vba excel-2007 excel-vba

3
推荐指数
1
解决办法
1万
查看次数

IErrorInfo.GetDescription失败时带有E_FAIL(0x80004005).System.Data而数据适配器Fill()

我正在尝试从CSV文件中获取数据,通过使用fill()方法我得到了一个异常idk为什么会出现,请查看代码并建议乐观的answer.note如果参数"s"没有任何空格意味着它工作精细.如果它有空间意味着如何克服它,不建议临时重命名和所有.

/// <summary>
/// Import Function For CSV Delimeted File
/// </summary>
/// <param name="s">File Name</param>
private DataTable Import4csv(string s)
{
    string file = Path.GetFileName(s);
    string dir = Path.GetDirectoryName(s);
    string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;"
                             + "Data Source=\"" + dir + "\\\";"
                             + "Extended Properties=\"text;HDR=YES;FMT=Delimited\"";
    try
    {
        var objConn = new OleDbConnection(sConnection);
        objConn.Open();
        var ds = new DataSet();
        var da = new OleDbDataAdapter("SELECT * FROM " + file, sConnection);
        da.Fill(ds);        // getting exception on this line.
        objConn.Close();
        return ds.Tables[0];
    }
    catch (Exception …
Run Code Online (Sandbox Code Playgroud)

.net c# excel-2007

3
推荐指数
2
解决办法
3万
查看次数