标签: excel-2013

基于Excel版本的条件编译

我知道我可以在VBA中使用条件编译来区分64位和32位版本(使用#If VBA7 Then ...).

是否还有一个类似的常量构建,Application.Version以便我可以在编译时区分Excel 2013/2010/2007/...等?

此外,是否有可用的现有编译器常量列表?到目前为止,我发现VBA7Win64(例如,从这个文章) -但是否还有其他的吗?

excel vba compilation excel-2010 excel-2013

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

从SSAS表格创建Power View工作表时出错

从云中的Azure VM上运行的Analysis Services(SSAS)表格实例创建Excel 2013 Power View工作表时,我收到一个奇怪的错误.这是错误:

抱歉,加载项目或数据源'xxxxxx.cloudapp.net表格模型'的模型时出错了.验证连接信息是否正确以及您是否有权访问数据源.

奇怪的是,我可以从中成功创建正常连接的数据透视表; 我在尝试制作Power View工作表时只收到错误.这会让我相信我正在连接到多维SSAS数据库,但我不是.以下是我已经尝试过的一些事情:

  • 转发Azure中的默认SSAS端口2383并在Windows防火墙中打开它(这允许我使用连接的数据透视表浏览多维数据集)
  • 确保我的登录具有SSAS数据库的权限(我没有使用Windows身份验证)
  • 检查SSAS表格兼容性版本,它是1103
  • 检查了SSAS表格SSDT项目的兼容性级别,它也是1103
  • 确保SQL Server Browser正在运行(我在某处可能会出现问题)
  • 尝试打开端口80和443以防万一需要的东西,没有帮助...
  • 尝试监控Excel的端口使用情况以查看是否正在尝试其他端口,除了2383之外看不到任何其他内容
  • 成功连接到Intranet SSAS表格数据库(可比性1101)并从中创建一个Power View表(这意味着我的Excel客户端应该没有任何问题)

以下是我的设置的一些细节:

服务器

  • Windows Server 2012
  • SQL Server 2012 SP1
  • SSAS表格默认实例(兼容级别1103)

客户

  • Windows 8
  • Excel 2013(15.0.4426.1017)MSO(15.0.4454.1002)32位

更新( 2013年12月2日):我在服务器上安装了Excel 2013,可以成功创建连接到Tabular数据库的Power View工作表.这意味着我的表格SSAS实例设置得很好,但在尝试通过互联网创建工作表时仍然存在问题.

更新(2013年2月15日):我使用Windows Update将Excel更新为15.0.4454.1503无效.我让一位同事成功连接了一个稍微旧版本的Excel 2013.我完全难过了.我还尝试在我更新到v 15.0.4454.1503的VM上安装Excel的新副本,它给了我同样的错误.

更新(2013年2月20日):我在Windows Server 2012,SQL Server 2012和SSAS Tabular compat 1103上安装了一个全新的本地VM.I STILL无法从该服务器成功生成Power View报告.我坚信 Excel 2013客户端存在某种错误.

ssas tabular azure-virtual-machine powerview excel-2013

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

Excel 2013工作表激活

我有一个从用户表单激活工作表的问题,相同的代码在Excel 2003到Excel 2010中工作正常,不适用于Excel 2013.

这是如何简单地重现问题:

有一个包含2个工作表的工作簿,在其中调用,Sheet1并且可以Sheet2说是Sheet12个按钮:

  1. 单击Button1激活Sheet2工作表时,使用Macro11行:

    ThisWorkbook.Sheets("Sheet2").Select
    
    Run Code Online (Sandbox Code Playgroud)

    我可以很好地编辑数据.

  2. 上点击Button2一个UserForm1弹出,就点击CommandButton1呼叫同宏1所示:

    Unload Me
    Macro1
    
    Run Code Online (Sandbox Code Playgroud)

    Sheet2工作表被激活,排序的,但如果我是编辑的数据,它实际上更新在Sheet1相应的单元格,如果我点击Sheet1我可以看到在那里输入的数据!

单击返回Sheet2工作Sheet2表可以正确激活工作表.

有没有人见过这样的行为?如果是,是否有任何编码解决方法可以正确激活Sheet2

excel vba excel-vba excel-2013

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

Solver.xlam丢失了吗?

我在PC上的Excel 2010中创建了一个程序,该程序依赖于Excel的内置解算器.我确保它适用于Excel 2010和Excel 2013 for PC.然后我尝试在Excel 2011上使用相同的程序,并遇到了一个问题.

当我尝试编译项目时,它会显示"编译错误:无法找到项目或库".

我记得在启用解算器之前在PC端发生了这种情况,所以我进入了工具 - >插件,然后启用了Solver.Xlam.

启用S​​olver.Xlam的图片

但是,我得到了同样的错误.

我进入了开发人员端,然后转到Tools - > Reference,发现Solver.Xlam丢失了.

失踪的Solver.Xlam的图片

我意识到它认为解算器所在的地址是解算器在我的PC上的位置,而不是它在OSX上的位置.当我在OSX上搜索时,我发现求解器在/Applications/Microsoft Office 2011/Office/Add-Ins.

所以我点击底部的"浏览"并选择Solver.Xlam.

选择Solver.Xlam

我选择了Solver.Xlam.

Solver.Xlam现已被选中

但现在我得到了一个不同的错误.

错误

弹出此错误后,它正在寻找Solver.Xlam的位置重置为先前的位置.

这是什么问题?我该如何解决这个问题?

excel vba excel-2011 excel-vba-mac excel-2013

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

Excel自定义任务窗格未显示

我正在excel VSTO加载项中显示一个自定义任务窗格,正在构建它并显示为:

var ctrl = new CellTaskPane();
var pane = CustomTaskPanes.Add(ctrl, "Custom Sheet");
pane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
pane.DockPositionRestrict = Office.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange;
pane.Visible = true;
Run Code Online (Sandbox Code Playgroud)

这是在ThisAddin.cs文件中完成的,并且在Debug会话下以及通过单击一次安装程序安装的加载项下,都可以在我的计算机上正常运行。

但是,将加载项安装到同事的机器上被证明很麻烦。

加载项正在运行,并且上下文菜单/功能区运行正常,但是窗格只是拒绝显示。

我在功能区上有一个切换按钮,可以切换Visible窗格上的属性,甚至单击也不会强制窗格显示。

任何帮助都将不胜感激,谷歌对此毫无用处。

谢谢。


我应该提一下,这CellTaskPane只是UserControlMSDN上的文档所规定的:http : //msdn.microsoft.com/en-us/library/aa942846.aspx

excel vsto excel-addins customtaskpane excel-2013

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

Excel VBA无法将PageSetup正确导出为PDF

我有将工作表格式化为所需的设置和布局的代码(横向一页高,横向)。当我运行代码(长宏的一部分)时,它会正确设置pagesetup的格式。

如果我手动导出并将其另存为pdf,则它将使用正确的页面设置,从而生成横向的一页PDF。但是,VBA所做的相同导出将产生几页长的纵向PDF。

我不知道为什么要这么做。我已经尝试了各种解决方案,例如在导出工作表之前选择了工作表,但都无济于事。

任何帮助表示赞赏。

代码如下:

Sub SaveAsPDF()
Sheets(ReportWsName).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        [SaveFolderPath] & "\" & ReportWsName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub
Run Code Online (Sandbox Code Playgroud)

更新:

用于格式化pagesetup的代码(因为时间太长,我只添加了该子项的相关部分)

Private Sub CreateNewReport(ProvisionCode As String, TimeFrom As Date, TimeTo As Date)

... other code here...

'Format report to create the desired layout
With Worksheets(ReportWsName)
    'Delete unnecessary data and format the rest
    .Range("A:B,D:D,F:G,J:M,O:O,Q:S").Delete Shift:=xlToLeft
    .Range("A:F").EntireColumn.AutoFit
    .Range("C:C, E:F").ColumnWidth = 30
    With .Range("G:G")
        .ColumnWidth = 100
        .WrapText = True
    End With
    'Insert standard formating header …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2010 excel-2013

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

循环文件夹,使用VBA重命名符合特定条件的文件?

我是VBA的新手(并且只接受过一些java培训),但是在这里的其他帖子的帮助下组装了这段代码并且已经碰壁了.

我正在尝试编写循环遍历文件夹中每个文件的代码,测试每个文件是否符合某些条件.如果满足条件,则应编辑文件名,覆盖(或删除先前)任何具有相同名称的现有文件.然后,应将这些新重命名的文件的副本复制到其他文件夹.我相信我非常接近,但是我的代码在运行时拒绝循环访问所有文件和/或崩溃Excel.请帮忙?:-)

Sub RenameImages()

Const FILEPATH As String = _
"C:\\CurrentPath"
Const NEWPATH As String = _
"C:\\AditionalPath"


Dim strfile As String
Dim freplace As String
Dim fprefix As String
Dim fsuffix As String
Dim propfname As String

Dim FileExistsbol As Boolean

Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")

strfile = Dir(FILEPATH)

Do While (strfile <> "")
  Debug.Print strfile
  If Mid$(strfile, 4, 1) = "_" Then
    fprefix = Left$(strfile, 3)
    fsuffix = Right$(strfile, 5)
    freplace = "Page"
    propfname = …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2013

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

Excel和RabbitMQ-在Excel中处理RabbitMQ消息吗?

我想从Excel 2013订阅RabbitMQ消息队列。

最终目的是允许在Excel中处理MQ消息中包含的数据,并且还允许Excel通过RabbitMQ消息队列发送格式化的消息。

这可能吗?

沿着消息队列发送的消息由7个字段组成,每个字段用;分隔。符号-但是消息将作为一个字符串发送到消息队列中...

例如 "text;number;number;number;text,text,timestamp"

我希望能够将上述原始消息拆分为Excel 2013中的格式化单元格。

能做到吗?

我的编码经验有限,我想学习,所以如果这是一个“傻”问题,请原谅我。

任何指针将不胜感激,例如可以通过VBA代码或Excel插件来完成吗?

提前致谢...

excel vba excel-vba rabbitmq excel-2013

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

从Range(对象)中删除单元格

背景
我的代码在范围内执行一些循环,但是,每个交互应该在不包括刚执行的单元格的范围内执行.我认为更简单的方法是从存储的范围中删除单元格.
问题
我无法找到从存储对象中删除单元格的方法
代码
问题是一般的但是,对于问题,它会像

Sub Sample()
Dim RangeToAnalyze As Range
Dim CounterRange As Long
Dim ExcludeCell As Range 'sample on what is desired to achieve
    Set RangeToAnalyze = Selection 'this is based on some other criteria but, in order to reproduce it easier that's why selection
    For CounterRange = 1 To 5
    Set ExcludeCell = RangeToAnalyze.Find("text")
    'now here I would like to find the next cell, but it should exclude the first one in order to go to …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2013

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

TextJoin UDF For Excel 2013

I am trying to utilize a UDF version of TextJoin since I am using Excel 2013 - but this function is not properly returning the accurate data.

My data-set in Excel looks like this

saleID      Item
5           PRE2323
6           Pre2323223
6           OX12321
6           RI132
9           TN23
9           LSR12
Run Code Online (Sandbox Code Playgroud)

And my desired output is

saleID     Items
5          Pre2323
6          Pre2323223, OX12321, RI132
9          TN23, LSR12
Run Code Online (Sandbox Code Playgroud)

And this is the UDF I Have that is not functioning as it should

    Option Explicit …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-formula excel-2013

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