当我在像FirefoxDriver这样的webdriver中使用代理时,如果代理不好,那么get方法将永远阻止.我设置了一些超时参数,但这没有用.
这是我的代码:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override", ua);
Proxy p = new Proxy();
p.setHttpProxy(proxy);
profile.setProxyPreferences(p);
profile.setEnableNativeEvents(true);
// create a driver
WebDriver driver = new FirefoxDriver(profile);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);
driver.get("www.sina.com.cn")
Run Code Online (Sandbox Code Playgroud)
对driver.get的调用将永远阻塞,但我希望它等待30秒,如果页面未加载则抛出异常.
我正在使用c#进行编程,并希望将包含子文件夹的文件夹从闪存盘复制到启动.
这是我的代码:
private void copyBat()
{
try
{
string source_dir = "E:\\Debug\\VipBat";
string destination_dir = "C:\\Users\\pc\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
if (!System.IO.Directory.Exists(destination_dir))
{
System.IO.Directory.CreateDirectory(destination_dir);
}
// Create subdirectory structure in destination
foreach (string dir in Directory.GetDirectories(source_dir, "*", System.IO.SearchOption.AllDirectories))
{
Directory.CreateDirectory(destination_dir + dir.Substring(source_dir.Length));
}
foreach (string file_name in Directory.GetFiles(source_dir, "*.*", System.IO.SearchOption.AllDirectories))
{
File.Copy(file_name, destination_dir + file_name.Substring(source_dir.Length), true);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
找不到路径E:\ Debug\VipBat的一部分
Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:由于打开服务器连接的延迟,无法完成登录过程.
当我执行sql server 2008 r2中的第一个查询没有问题但是当我执行第二个查询时出现上面的问题.我的数据库连接到本地PC并且没有远程连接可以任何人帮助我找到上面的补救
下面我可以设置值和文字:
dropListUserImages.DataValueField = "Value";
dropListUserImages.DataTextField = "Text";
dropListUserImages.Items.Add(new ListItem { Text = srText, Value = srValue});
Run Code Online (Sandbox Code Playgroud)
我还想设置额外的属性,例如:
data-imagesrc
data-description
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
看看这个属性(假设您在第一个工作表上有一个表):
Application.Sheets(1).ListObjects(1).name
Run Code Online (Sandbox Code Playgroud)
这个属性包含多少个字符?好吧,在测试了几个字符串后,我得出的结论是255,任何超过255个字符的字符串都会导致抛出错误:
运行时错误5 - 无效的过程调用或争论
看看这个属性:
Application.Sheets(1).ListObjects(1).Summary
Run Code Online (Sandbox Code Playgroud)
这个属性包含多少个字符?再次,测试几个字符串,你会得到一个大约50,000的数字,你设置它更高,你得到相同的错误,除了在这种情况下,excel有时会崩溃或吐出一个不同的错误(多次尝试后):
Dim i As Integer
Dim a As String
For i = 1 To 5001
a = a & "abcdefghih"
Next i
Application.Sheets(1).ListObjects(1).Summary = a
Run Code Online (Sandbox Code Playgroud)
对象'ListObject'的方法"摘要"失败
这种"隐藏"字符的限制来了所有的地方(在这里,在这里,少在这里具体,所以这里典雅),它似乎并不像他们记录任何地方,例如看看网页对于ListObject.Name,它没有注明你可以在该变量中存储多少个字符...
那么有更好的方法来确定这个吗?您在属性中设置的字符串是否存储在某个固定长度的字符串中,可以访问该字符串以确定它们的最大长度,或者是否可以使用其他形式的文档来获取此信息?
在标准VBA对象中的大多数字符串上设置的这些字符限制很奇怪,我想知道它们的目的是什么,为什么设计者选择将"ListObjects.name"限制为255个字符以及这是否是任意默认限制或是否这是一个有意识的决定.我相信标准的字符串长度是这个,我想知道为什么偏离这个标准.
总结一下我在上面提出的观点并将这个问题浓缩成一句话:
有没有一种通用的方法来确定可以一个对象的属性中设置字符串的最大长度,而不首先给它另一个值,而忽略错误/检查字符截断测试该字符串的财产?
通常,当我对VBA文件进行更改时,我喜欢对其进行编译以确保所做的更改不会破坏任何内容:
但是在具有不同版本Office的不同机器上进行编译将导致不同的结果,有时将进行编译,有时则不会…… 可能发生这种情况,或者可能发生这种情况。事实证明,在每个版本的excel中,各种情况都可能有所不同(尽管引用是最常见的问题)。
我将如何自动执行VBA代码的编译?我希望能够在Excel,PowerPoint和Word等多种产品中做到这一点,我希望能够在2010、2013、2016等版本中编译为32位和64位。
是的,这仍然是一个主要的痛点,现在我有一系列的手动测试人员(人员)根据我们的发布时间表来审查各种不同配置上的所有相关文件,必须有一种更好的方法来做到这一点。
我希望使用某种PowerShell脚本/.Net项目(C#,VB.NET)可以完成此任务,即使我必须使用一堆Office版本安装服务器,我认为这样做也很值得投资。
我想,在最坏的情况下,您可以将所有这些不同的版本安装到各种VM上,然后使用AutoHotKey加上某种PowerShell脚本进行编译。Macro在Macro的乐趣之上...
这个冒险之旅向我强调了VBA开发有多么困难。我真的是第一个在不同版本的excel之间出现问题的人吗?要求能够在不同版本下进行编译是否合理?
MS 可能会喜欢它,但是对我来说,几乎就像这种语言在支持遗留代码上并没有长期计划。由于它与诸如此类的核心开发挑战相关,它只是继续存在而没有任何重大的官方未来迭代或考虑。
我想问一下人们对于编写字符串的想法,以及构建字符串时性能是否存在巨大差异.
近年来我一直被告知永远不要做以下事情:
string dogName = "Ralph";
DateTime bornDate = DateTime.Parse("2010-01-01");
string fullText = "I am a Dog and my name is " + dogName + " and i was born on the " + bornDate.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)
并总是告诉类似下面的东西.
string dogName = "Ralph";
DateTime bornDate = DateTime.Parse("2010-01-01");
string fullText2 = String.Format("I am a Dog and my name is {0} and i was born on the {1:dd/MM/yyyy}", dogName, bornDate);
Run Code Online (Sandbox Code Playgroud)
我看到使用后面的语句的原因,但是有没有人知道第一个有什么类型的性能问题.
并使用StringBuilder对象而不是使用
string str = "Adding this comment to the string\n"
str += "Then Add …
Run Code Online (Sandbox Code Playgroud) 我在这个网站上看了几个类似的问题,但看起来他们都没有做到这一点.我正在尝试创建一个新的工作簿,复制其活动工作表的内容并将其粘贴到这个新创建的工作簿.以下是我使用的代码:
Sub new_workbook()
Dim ExtBk As Workbook
Dim ExtFile As String
Columns("A:N").Copy
Workbooks.Add.SaveAs Filename:="output.xls"
ExtFile = ThisWorkbook.Path & "\output.xls"
Set ExtBk = Workbooks(Dir(ExtFile))
ExtBk.Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Application.DisplayAlerts = False
ExtBk.Save
Application.DisplayAlerts = True
End Sub
Run Code Online (Sandbox Code Playgroud)
我PasteSpecial
在该主题上指定错误的行收到错误.我有点困惑,因为如果我将它指向源工作簿,这是有效的.
也许我需要使用Windows(output.xls)?
我在 Visual Studio 2017 中有一个 SQL 项目,我正在使用 SSDT 从 SQL 数据库更新我的项目,如下所示:
通常,我用作源的数据库正在发生变化(通常以小且不相关的方式),当发生这种情况时,我无法更新我的项目,我得到“通常”“经验丰富”:
检测到源架构漂移。按比较刷新。
然而,就我而言,这个错误是合法的,我只是不在乎,无论如何我想更新我的目标。有没有办法忽略此消息并让 Visual Studio 更新我的项目,而不管架构漂移如何?
visual-studio schema-compare sql-server-data-tools visual-studio-2017
获取一个带有数据透视表和一些数据/过滤器的文件:
将以下方法放在"BeforeClose"方法中:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'ThisWorkbook.connections(1).Ranges.count
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,如果您关闭此文件(并设置断点),您会注意到注释掉的语句具有以下值:
1
这就像我们所期望的那样,因为我们有一个连接,一个数据透视表,相当直接.现在重复相同的步骤,但是当您关闭文件时,首先打开一个空白的Excel文件,并在最小化时关闭主文件:
现在你得到:
0
现在,这怎么可能?这不是我对这个属性如何工作的理解.我以为"ThisWorkbook"是:
"ThisWorkbook属性更容易理解,因为它只是引用了正在执行VBA代码的Excel工作簿."
我在这里弄错了什么?找到"连接"但是当第二个文件处于活动状态时,范围属性似乎不正确.我最初的意图是确定连接的使用位置.也许我会以错误的方式去做?
哎呀,对于与MsgBox的所有混淆感到遗憾,似乎(在我之前的问题中),MsgBox再次激活窗口并显示1而不是代码中存在的值.但是,如果您在该行上设置了一个断点,您将在窗口变为活动状态之前看到该问题:
所以这个问题仍然存在,我很难以一种容易看到的方式重现这个问题(并且在堆栈溢出时可以传播).也许潜在的解决方法是在关闭之前使当前窗口成为活动窗口.我仍然想了解这种奇怪行为的根本原因.
我已经用这个澄清更新了原始问题,并删除了令人困惑的MsgBox问题.谢谢大家的好收获.