小编Mat*_*don的帖子

在VB6中实现String.Format()

可以String.Format()在VB6中实现,至少是一个足够接近的版本,在用'VB6'进行编程时可能会有用吗?

关于VB6字符串操作性能的良好资源:http://www.aivosto.com/vbtips/stringopt2.html

在一个相关的不,我也想出了几个字符串比较函数,在CodeReview.SE上找到它们

这些函数对于提高VB6的可读性非常有用,特别是如果你最近被.net代码宠坏了,突然被要求潜入VB6代码库......享受!

string vb6 vba string-formatting

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

IntelliJ IDEA中出现"ClassNotFoundException"错误

我做了这个简单的程序:

package main.java;

public class start {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

并得到了这个错误.我不知道发生了什么,

"C:\Program Files\Java\jdk1.7.0_21\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_21\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\zipfs.jar;C:\Users\Tim\IdeaProjects\Rust\out\production\Rust;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain java.start
Exception in thread "main" java.lang.ClassNotFoundException: java.start
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea

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

int到Entity Framework中的字符串

如何将int转换为链接到EF的字符串?

clr不能想象将int转换为字符串而Entity框架无法找出要转换.ToString()成的SQL片段.

那么如何编写一个返回字符串而不是int的linq语句?

entity-framework

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

如何在没有Application.Run的情况下从VBE加载项运行宏?

我正在为VBE编写COM加载项,其中一个核心功能是在单击命令栏按钮时执行现有的VBA代码.

代码是用户在标准(.bas)模块中编写的单元测试代码,其模块如下所示:

Option Explicit
Option Private Module

'@TestModule
Private Assert As New Rubberduck.AssertClass

'@TestMethod
Public Sub TestMethod1() 'TODO: Rename test
    On Error GoTo TestFail

    'Arrange:

    'Act:

    'Assert:
    Assert.Inconclusive

TestExit:
    Exit Sub
TestFail:
    Assert.Fail "Test raised an error: #" & Err.Number & " - " & Err.Description
End Sub
Run Code Online (Sandbox Code Playgroud)

所以我有这个代码获取主机Application对象的当前实例:

protected HostApplicationBase(string applicationName)
{
    Application = (TApplication)Marshal.GetActiveObject(applicationName + ".Application");
}
Run Code Online (Sandbox Code Playgroud)

这是ExcelApp班级:

public class ExcelApp : HostApplicationBase<Microsoft.Office.Interop.Excel.Application>
{
    public ExcelApp() : base("Excel") { }

    public override void Run(QualifiedMemberName …
Run Code Online (Sandbox Code Playgroud)

c# com reflection ms-office vbe

22
推荐指数
2
解决办法
2105
查看次数

将代码放入Userforms而不是模块是否有缺点?

将代码放入VBA Userform而不是"普通"模块中是否有缺点?

这可能是一个简单的问题,但我在搜索Web和stackoverflow时没有找到一个确定的答案.

背景:我正在Excel-VBA中开发数据库的前端应用程序.要选择不同的过滤器,我有不同的用户形式.我问一般的程序设计更好:(1)将控制结构放入单独的模块中(2)将下一个用户形式或操作的代码放入用户窗体中.

让我们举个例子.我有一个Active-X按钮,可以触发我的过滤器和表单.

Variant1:模块

在CommandButton中:

Private Sub CommandButton1_Click()
  call UserInterfaceControlModule
End Sub
Run Code Online (Sandbox Code Playgroud)

在模块中:

Sub UserInterfaceControllModule()
Dim decisionInput1 As Boolean
Dim decisionInput2 As Boolean

UserForm1.Show
decisionInput1 = UserForm1.decision

If decisionInput1 Then
  UserForm2.Show
Else
  UserForm3.Show
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

在变体1中,控制结构在正常模块中.关于下一个要显示哪个userform的决定与userform分开.决定下一个要显示的用户表单所需的任何信息都必须从用户表单中提取.

Variant2:Userform

在CommadButton中:

Private Sub CommandButton1_Click()
  UserForm1.Show
End Sub
Run Code Online (Sandbox Code Playgroud)

在Userform1中:

Private Sub ToUserform2_Click()
  UserForm2.Show
  UserForm1.Hide
End Sub

Private Sub UserForm_Click()
  UserForm2.Show
  UserForm1.Hide
End Sub
Run Code Online (Sandbox Code Playgroud)

在变体2中,控制结构直接在用户表单中,每个用户表单都有关于它后面的内容的说明.

我已经开始使用方法2进行开发.如果这是一个错误,并且这个方法有一些严重的缺点,我想早点知道它.

excel user-interface vba userform

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

如何检测用户是否选择取消InputBox VBA Excel

我有一个输入框,要求用户输入日期.如果用户单击取消或关闭输入对话框而不是按下确定,如何让程序知道停止.

就像是 if str=vbCancel then exit sub

目前,用户可以点击OK或取消,但该程序仍然运行

str = InputBox(Prompt:="Enter Date MM/DD/YYY", _ Title:="Date Confirmation", Default:=Date) 在此输入图像描述

excel vba

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

声明变量工作簿/工作表vba

我知道这可能是一个微不足道的问题,但我似乎无法宣称一个workbookworksheet一个变量VBA.我有以下代码,但我无法弄清楚我做错了什么,应该是直截了当的.通常我没有任何问题声明变量等问题Dim i As Integer.

sub kl() 

    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ActiveWorkbook
    Set ws = Sheet("name")

    wb.ws.Select

End Sub
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我收到一个type missmatch错误.

variables excel vba

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

从Range.Interior.Color(或任何其他颜色属性)返回RGB值

我试图逐渐将单元格的背景颜色更改为黑色,我发现Range.Interior.Color方法返回一个看似随意的Long.查看MSDN上的文档,几乎没有关于此数字代表什么的信息.有没有办法从这个长度返回RGB值.我实际上需要与RGB(红色,绿色,蓝色)功能相反的功能.

excel rgb vba colors

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

Rubberduck UI子菜单已禁用

我刚刚在Windows 10操作系统上安装了Rubberduck VBE加载项v2.0.11.2453(MSIL).

当我在Excel中打开一个启用宏的Excel工作簿并启动VBA编辑器时,Rubberduck启动但Rubberduck菜单下的所有命令都被禁用.

我究竟做错了什么?

在此输入图像描述

vba vbe rubberduck

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

常数点运算符(VBA)

我想有一个常量材料的目录,所以我可以使用如下所示的代码:

Dim MyDensity, MySymbol
MyDensity = ALUMINUM.Density
MySymbol = ALUMINUM.Symbol
Run Code Online (Sandbox Code Playgroud)

显然铝的密度和符号预计不会改变所以我希望它们是常数但我喜欢简单的点符号.

我看到了几个选项,但我不喜欢它们.

  1. 为每种材料的每个属性制作常量.这似乎太多常数,因为我可能有20个材料,每个都有5个属性.

    Const ALUMINUM_DENSITY As Float = 169.34
    Const ALUMINUM_SYMBOL As String = "AL"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用所有材质定义枚举并生成返回属性的函数.密度不是很明显,因为它的值是由函数返回的.

    Public Enum Material
         MAT_ALUMINUM
         MAT_COPPER
    End Enum
    
    Public Function GetDensity(Mat As Material)
        Select Case Mat
            Case MAT_ALUMINUM
                GetDensity = 164.34
        End Select
    End Function
    
    Run Code Online (Sandbox Code Playgroud)

似乎Const Structs或Const Objects不会解决这个问题,但也许我错了(甚至可能不被允许).有没有更好的办法?

vba const constants

14
推荐指数
2
解决办法
359
查看次数