小编Gar*_*ill的帖子

如何在Word表中复制行?

我试图使用VBA复制Word中的表行,而不使用Selection对象或剪贴板.也就是说,我想要一个与现有行具有相同内容的新行.

为此,我首先创建一个新的(空)行,并循环遍历源行中的每个单元格,并将其内容复制到目标行中的相应单元格中.

为了复制每个单元格,我得到一个Range引用源单元格的整个内容Range的对象,以及目标单元格的等效对象,然后执行以下操作:

oToRange.FormattedText = oFromRange.FormattedText
Run Code Online (Sandbox Code Playgroud)

这在Office 2003上运行良好,并且大部分时间都在Office 2010上运行.但是,我遇到了一个特定场景的实际问题.我(大大)简化了这个场景,以展示问题的核心.

在下图中,外(灰色)2R x 1C表中有两个单元格.第二行是要复制的行.第一行是我创建的新行,我想要复制第二行的内容.

在此输入图像描述

您会注意到第二行包含嵌套表.

当我在Word 2003中运行下面的代码时,它完美地工作,我得到以下结果:

在此输入图像描述

但是,在Word 2010中,相同的代码会产生以下结果:

在此输入图像描述

如您所见,单元格内容已在目标表格单元格之前(和之外)插入.

值得一提的是,如果我在嵌套表之后放置一些东西,那么它不再是源单元格中的最后一个东西,那么就不会出现这个问题.

这是我正在使用的完整VBA代码:

Dim oDoc As Word.Document
Set oDoc = ThisDocument

Dim oFromRange As Range
Set oFromRange = ThisDocument.Tables(1).Cell(2, 1).Range
oFromRange.End = oFromRange.End - 1

Dim oToRange As Range
Set oToRange = ThisDocument.Tables(1).Cell(1, 1).Range
oToRange.End = oToRange.End - 1

oToRange.FormattedText = oFromRange.FormattedText
Run Code Online (Sandbox Code Playgroud)

注意:调整到源和目标范围Cell.Range的末尾是必要的,因为包括单元格结束标记,我不想复制它.

我该怎么做才能说服它将内容放在目标单元格内(就像Word 2003那样),而不是之前呢?

vba ms-word office-interop word-vba office-2010

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

结构指令可以使用@ContentChild 来引用子组件吗?

如果我有一个自定义指令ParentDirective和自定义组件,ChildComponent如下所示:

<div appParent>
  <app-child></app-child>
</div>
Run Code Online (Sandbox Code Playgroud)

...然后我可以@ContentChild在指令中使用来引用组件:

@ContentChild(ChildComponent) child: ChildComponent;
Run Code Online (Sandbox Code Playgroud)

请参阅此 StackBlitz 的工作原理。(它登录到控制台以显示该child成员已设置)。

但是,如果我将 appParent 更改为结构指令,则child永远不会设置该成员。

<div *appParent>
  <app-child></app-child>
</div>
Run Code Online (Sandbox Code Playgroud)

请参阅此 StackBlitz

不能@ContentChild与结构指令一起使用吗?

angular-directive angular-components angular

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

在通过早期绑定使用它之前,我可以使用后期绑定来检查库的存在吗?

我喜欢在我的VBA项目中使用早期绑定,因为我喜欢在开发过程中自动完成方法名称等.我也很有信心知道编译器会在我拼写错误的方法名称时发出警告.

但是,要使用早期绑定,我需要添加对相关库的引用(例如,"Microsoft Scripting Runtime").这对于那样的"标准"库来说很好,但有时我想使用可能存在或不存在于用户机器上的库.

理想情况下,如果库不存在(例如"xyz未安装在此计算机上,因此无法使用此功能"),我希望显示有用的消息.如果我只使用后期绑定,那么我可以这样做:

Dim o As Object
Set o = CreateObject("foo", "bar")

If o Is Nothing Then
    MsgBox "nope"
End If
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加了对库的引用以便使用早期绑定,那么如果库不存在,则在加载VBA项目时会出现编译错误.因此,没有代码运行(包括检测库不存在的代码).

围绕这个捕获22有什么办法吗?

vba late-binding early-binding

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

ApiController可以返回带有其他对象集合的对象吗?

如果我有一个Customer只有简单属性的类(例如Name,等等),那么我可以创建一个CustomersController派生自ApiController,并使用URL查询我的Customer对象/api/customers.

类似地,如果我有一个Order具有简单属性(Description,Amount)的类,那么我可以创建一个OrdersController并以相同的方式访问它.

但是,如果我然后在我的Customer类中添加一个属性,列出Order与之关联的s Customer:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    // ...
    public virtual ICollection<Order> Orders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

...然后,当我尝试查询使用时,/api/customers我得到500服务器错误.我可以在其中放置一个断点,CustomersController并且可以看到它确实调用了正确的方法,并尝试返回一个值.但是,在框架的内容中,它无法将其转换为HTTP响应.

看起来它无法序列化Orders信息和/或将其打包为HTTP响应,但我不确定我需要做些什么来实现这一点.或者仅仅是WebApi的东西不是为了返回复杂的对象而设计的?


更新:我的代码在这里:https://gist.github.com/43ed2f29f8adfb44cef6


更新2:有关我得到的错误的更多信息:

Server error
The website encountered an error while retrieving …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4 asp.net-web-api

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

使用Linq,如何查询匹配以逗号分隔的ID列表的记录?

我有一个以逗号分隔的记录ID列表,我从查询字符串中获取.我需要返回所有记录(来自SQL Server数据库)与那些ID.Linq最好的办法是什么?

我认为它最终将转换为"WHERE id IN(1,2,3,...)"形式的SQL语句,并且因为该查询包含我开头的相同的逗号分隔列表,将它打包成一个int数组然后让Linq再次将它转换回来似乎是一种耻辱.但如果这是唯一的方法,那就好了.

c# linq-to-sql

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

是否可以从量角器测试中调用C#代码?

我想用C#实现我的Protractor单元测试的一部分.这可能吗?

原因是我想从我的数据库中提取一些数据并将其与存储在文本文件中的预期结果进行比较.在JavaScript中执行此操作涉及太多繁重的工作.所以,我想调用一个C#DLL或EXE来做这个部分.

c# unit-testing angularjs protractor

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

如果使用"获取最新版本",如何判断更新内容?

我有一个Visual Studio解决方案,并使用TFS进行版本控制.

当我对解决方案的工作副本进行一系列更改时,团队资源管理器窗口将显示我已更改的所有文件,并允许我将我的版本与工作区(原始)版本进行比较,或者TFS中的最新版本.

但是,在我检查我的更改之前,我首先想要将(由其他人)所做的任何更改集成到最新的TFS版本,因为我从TFS获得了源代码.

可以做一个获得最新版本,并希望最好的.但是,我通常更愿意知道将要更改的内容,并有机会覆盖我的本地文件之前详细查看这些更改.

有没有办法比较我的工作区(原始)版本与TFS中的最新版本,或者在我实际执行之前看看"获取"的效果是什么?

为了有用,这必须是一个解决方案级别 - 我不希望必须通过每个单独的文件.

tfs visual-studio visual-studio-2013 tfs2013 tfvc

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

VSTO应用程序加载项无法加载 - 说"托管加载项加载程序无法初始化"

我有一个使用VS2012和VSTO开发的PowerPoint 2010应用程序级外接程序.它也适用于PowerPoint 2007.我使用随VS2012提供的(可怕的)InstallShield LE crippleware为它构建了一个安装程序.我已经能够在各种测试机器上安装它,但现在我正在尝试将它部署到客户端,他们无法在某些机器上安装它.

客户端站点的一个用户可以安装它,但该用户在IT中工作并且在其计算机上具有管理员权限.但是,当IT管理员尝试将其安装在"普通"用户的计算机上时,安装似乎没问题,但PowerPoint没有加载加载项.

"COM加载项"对话框显示消息:

加载行为:未加载.托管外接程序加载程序无法初始化.

[如果它是相关的,则此客户端使用Office 2007.请注意,它在我的测试硬件和客户端上的那个用户的Office 2007上都可以正常工作.

我能做些什么来弄清楚原因吗?作为安装的一部分,我应该做些什么吗?显然,正在设置注册表项,因为加载项列在COM加载项对话框中.我假设安装了所有必需的文件,因为安装程序在其他机器上运行正常.

我想这可能是一个与安全相关的问题.我应该注意到,我没有做任何安全方面的事情,我认为InstallShield在这方面没有做任何有用的事情.我不知道是否有必要对我的代码进行数字签名(我没有),或以某种方式设置一些安全策略(我不知道如何).我已经看到一些关于使用CasPol(?)将安全设置应用于加载项的在线内容,但这适用于旧版本的VS和/或ClickOnce,我不确定是否需要其中任何一项.

c# installation vsto visual-studio-2012

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

我可以更改ASP.NET MVC IdentityUser中UserName字段的显示名称吗?

我正在使用ASP.NET Identity,并扩展了IdentityUser类以添加我自己的数据.

我正在使用数据注释来设置某些字段的显示名称等,但由于UserName字段是烘焙的,我无法对其进行注释.由于我打算在该字段中存储电子邮件地址,这是我真正想要重命名的电子邮件地址!

如果数据注释是非启动的(我认为它们是),有没有其他方法可以实现相同的结果?

asp.net-mvc asp.net-mvc-5 asp.net-identity asp.net-identity-2

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

我怎样才能让 typeahead.js 与 jquery.validate 一起玩得很好?

我有一个使用 jQuery 验证的 ASP.NET MVC 5 网站(jquery.validate.js在 MVC 项目模板中)。我正在尝试使用typeahead.js在表单中的输入字段之一上实现预输入功能。(该表单恰好在引导模式内)。

因为提交表单会发出 AJAX 请求,所以表单提交事件被困如下:

$form.on("submit", function (e) {

    if (!$form.valid()) {
        return false;
    }

    ... do stuff ...
Run Code Online (Sandbox Code Playgroud)

请注意,此处发生的第一件事是检查表单是否存在任何验证错误,如 jQuery 验证库检测到的那样。

如果我使用typeahead,那么一切都很好。我可以在表单中输入值并提交,一切都很好。

但是,只要我执行以下操作将预输入功能添加到我的输入中:

$("#myInput").typeahead({
    minLength: 1,
    highlight: true
},
{
    source: mySource
});
Run Code Online (Sandbox Code Playgroud)

...然后我不能再提交表格了。我的形式被认为是合法的:$form.valid()回报false

我认为typeahead.js图书馆正在向表单添加一些额外的元素(包括隐藏的输入),这让jquery.validate.js图书馆感到困惑。

使用 Chrome F12,似乎那里有一个输入看起来像原始输入的副本,遗憾的是该副本似乎已被复制,因此它也具有所有 jQuery 验证属性的副本。

我该如何解决这个问题?

javascript jquery jquery-validate typeahead.js

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

如何将网站配置为使用TFS版本管理自动启动?

[ 我发布这篇文章是为了记录经过数小时痛苦的反复试验后我实际发现的内容.]

我有一个网站,我需要"始终运行"(因为在这种情况下,它有一个Hangfire工作,负责每5分钟启动一个计划任务),默认情况下,网站只在第一个请求是启动时启动收到了.

那么,我该如何确保网站自动启动?而且,我如何通过TFS版本管理工具进行配置?

iis tfs tfs2012 iis-8

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

如何获得反转的ReadonlyArray?

如果我有一个ReadonlyArray<T>,并且我想获得另一个ReadonlyArray<T>具有相同物品但顺序相反的物品,实现这一目标的最简单方法是什么?

例如:

const scoresInAscendingOrder: ReadonlyArray<number> = [1, 2, 3, 5, 9];
const scoresInDescendingOrder: ReadonlyArray<number> =  ???;
Run Code Online (Sandbox Code Playgroud)

我无法使用,scoresInAscendingOrder.reverse()因为ReadonlyArray不支持该方法(并且正确地因为它会修改scoresInAscendingOrder)。

typescript

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

如何正确等待无法完成的操作

在我的应用程序中,我创建了一个类SerializableBitmapImage,它显示默认图像,而另一个图像从Internet下载.它还允许将下载的图像序列化为字节数组,因此不需要在每次应用程序启动时下载图像.我目前在"Card"类中有一个SerializableBitmapImage,它在卡数据完成下载时保存:

var resp = await AppData.API.GetCards();
if (resp != null)
{
    if (AppData.CardsData == null)
        AppData.CardsData = new CardsData();
    AppData.CardsData.Update(resp);
    AppData.SaveCards();
    FillCards();
}
Run Code Online (Sandbox Code Playgroud)

但是,有时SerializableBitmapImage中的图像在调用AppData.SaveCards()时没有完成下载,导致图像无法保存.所以,我正在寻找一种延迟保存的方法,直到下载图像为止.现在,我在SerializableBitmapImage的构造函数中下载图像,如下所示:

Image = new BitmapImage(defaultUri); //set to default while downloading
BitmapImage img = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
img.ImageOpened += (sender, e) => //download successful, set Image to downloaded image
{
    Image = sender as BitmapImage;
    NotifyPropertyChanged("Image");
};
img.UriSource = downloadUri; //download the image
Run Code Online (Sandbox Code Playgroud)

我在SerializableBitmapImage中创建了一个Task来等待图像完成,但我不确定它是否以健康的方式完成它的工作.

public async Task WaitForImageDownload()
{
    while (Image == null || …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous bitmapimage async-await

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