小编Geo*_*rge的帖子

Excel VBA中的ByRef参数类型不匹配

我正在和VBA合作.我写了一个用户定义函数,它接受一个string,处理它并返回一个清理过的string.我不确定它有什么问题.我无法调用它并要求它处理我的字符串并将其返回.我在想我定义或返回它的方式有误.

Public Function ProcessString(input_string As String) As String
    ' The temp string used throughout the function
    Dim temp_string As String

    For i = 1 To Len(input_string)
        temp_string = Mid(input_string, i, 1)
        If temp_string Like "[A-Z, a-z, 0-9, :, -]" Then
            return_string = return_string & temp_string
        End If
    Next i
    return_string = Mid(return_string, 1, (Len(return_string) - 1))
    ProcessString = return_string & ", "
End Function
Run Code Online (Sandbox Code Playgroud)

我像这样使用这个功能

Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)
Run Code Online (Sandbox Code Playgroud)

姓氏是一个字符串变量,通常看起来像这样Lastname*****,我试图删除它背后的所有星星.让它在Lastname没有星星的情况下返回.

Compile error: ByRef …

excel vba excel-vba

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

正确的方法来实现自定义弹出tkinter对话框

我刚开始学习如何创建自定义弹出对话框; 事实证明,tkinter messagebox它真的很容易使用,但它也没有做太多.这是我尝试创建一个对话框,该对话框将接受输入,然后将其存储在用户名中.

我的问题是实现这个的推荐方式是什么?正如布莱恩·奥克利在这篇评论中所说.

我建议不要使用全局变量.不要让对话框自行销毁,而是让它只销毁实际的小部件,但让对象保持活着状态.然后,调用像inputDialog.get_string(),然后del inputDialog从你的主要逻辑.

也许使用全局变量来返回我的字符串不是最好的主意,但为什么呢?建议的方式是什么?我感到困惑,因为一旦窗口被破坏,我不知道如何触发getstring,并且......关于破坏实际小部件的线,我不确定他是否指的是TopLevel.

我问的原因是因为我想按下提交按钮后弹出框被销毁; 因为毕竟,我希望它恢复到主程序,更新一些东西等等.send在这种情况下按钮方法应该做什么?因为这个特定示例中的想法是允许用户一次又一次地执行它,如果他愿意的话.

import tkinter as tk

class MyDialog:
    def __init__(self, parent):
        top = self.top = tk.Toplevel(parent)
        self.myLabel = tk.Label(top, text='Enter your username below')
        self.myLabel.pack()

        self.myEntryBox = tk.Entry(top)
        self.myEntryBox.pack()

        self.mySubmitButton = tk.Button(top, text='Submit', command=self.send)
        self.mySubmitButton.pack()

    def send(self):
        global username
        username = self.myEntryBox.get()
        self.top.destroy()

def onClick():
    inputDialog = MyDialog(root)
    root.wait_window(inputDialog.top)
    print('Username: ', username)

username = 'Empty'
root = tk.Tk()
mainLabel = tk.Label(root, text='Example …
Run Code Online (Sandbox Code Playgroud)

python dialog tkinter tkmessagebox

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

类的计数器变量

我无法运行这段代码.该课程是学生,它有一个IdCounter,它就是问题所在.(第8行)

class Student:
    idCounter = 0
    def __init__(self):
        self.gpa = 0
        self.record = {}
        # Each time I create a new student, the idCounter increment
        idCounter += 1
        self.name = 'Student {0}'.format(Student.idCounter)

classRoster = [] # List of students
for number in range(25):
    newStudent = Student()
    classRoster.append(newStudent)
    print(newStudent.name)
Run Code Online (Sandbox Code Playgroud)

我想把这个idCounter放在我的Student班级里面,所以我可以将它作为学生名字的一部分(例如,它真的是一个ID#Student 12345.但我一直在收到错误.

Traceback (most recent call last):
  File "/Users/yanwchan/Documents/test.py", line 13, in <module>
    newStudent = Student()
  File "/Users/yanwchan/Documents/test.py", line 8, in __init__
    idCounter += 1
UnboundLocalError: local variable …
Run Code Online (Sandbox Code Playgroud)

python class-variables

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

条件格式(IF非空)

我如何有条件地格式化单元格,如果不是空白,它是灰色的?

我试图做'不等于',但它没有用.

我正在使用Windows Office 2003和Windows XP.我没有看到与以下相同的功能:

在此输入图像描述

到目前为止我尝试了什么:

在此输入图像描述

编辑:想出错了什么.在我的作品(实际工作Excel)中,它们充满了白色.这不是我的Excel文件,所以我之前没有意识到这一点.

excel conditional-formatting excel-2003

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

VBA如何在没有.Select的情况下复制单元格的内容

我正在编写一种方法,可以Target将单元格精确地粘贴到另一个单元格.该单元格是一个带有一些花式结构的运输标签.有没有办法可以做到?

本来我有这个:

Worksheets("Label").Range("A1").Value = Worksheets("Get Address").Range("A28").Value
Run Code Online (Sandbox Code Playgroud)

它适用于纯文本.然而,我失去了我创建的样式,它们是不同的,因为在第一行之后,风格是不同的:

在此输入图像描述

我也尝试使用Macro Recorder,我得到了一个使用的解决方案.Select,我读了这个问题,尽可能不使用它.我能做什么?

' Created by the Macro Recorder
Range("A28:A33").Select
Range("A33").Activate
Selection.Copy
Sheets("Label").Select
Range("A1").Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)

excel vba excel-2003 excel-vba

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

插入Excel VBA字符串

在JAVA或C++中,我们可以做一些事情myString.insert(position, word).有没有办法在Excel VBA的字符串中执行相同的操作?在我的工作表中,我有一个字符串看起来像这样:01 / 01 / 995,我想在年份中插入1,所以制作它01 / 01 / 1995.

Dim test_date As String
test_date = "01 / 25 / 995"
test_date = Mid(test_date, 1, 10) & "1" & Mid(test_date, 11, 4)
Run Code Online (Sandbox Code Playgroud)

还有另一种更简单/更优雅的方式吗?

excel vba excel-vba

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

C++如何获得最大和最小的

这是一个简单的介绍课程问题,它要求编写一个程序,要求用户输入3个数字,并确定最大和最小的数字.仅使用if语句.我认为它写了这样的东西,但是有可能只使用3次或更少的比较吗?我想什么时候y > largest,它也告诉我们其他的东西呢?

这是我到目前为止所尝试的:需要进行4次比较.

    int x, y, z;
    int smallest, largest; 
    cout << "Please enter 3 numbers to compare: " ;
    cin >> x >> y >> z;

    smallest = x;
    largest = x;

    if (y > largest) 
            largest = y;
    if (z > largest)
            largest = z;
    if (y < smallest)
            smallest = y;
    if (z < smallest)
            smallest = z;

    cout << "largest: " << largest << ", and smallest: " << …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement

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

AutoHotKey无限while循环

有没有办法在AutoHotKey中创建类似的东西?

bool isReady = false;
while (!isReady) {
   // Do something here
   isReady = true;
}
Run Code Online (Sandbox Code Playgroud)

我尝试用While循环进行实验,但是无论我给程序指定什么条件,它都只以1个循环结束。我目前正在使用1.0.47.06版。

我在这里阅读了文档:http : //www.autohotkey.com/docs/commands/While.htm我试图为while循环赋予true值。但是它只执行一次。(我一直希望它永远循环,直到终止脚本为止)。

condition := true

while (condition)
{
    MsgBox, condition
}

while (true)
{
    MsgBox, true
}
Run Code Online (Sandbox Code Playgroud)

autohotkey

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

tkinter的.pack_propagate()方法

我正在尝试使用Tkinter,因为我试图弄清楚有没有办法在不使用画布的情况下设置tkinter的窗口大小.我想到了如何在SO的问答中设置帧大小问题.所以我继续通过编写一个非常小的程序来测试它,以显示文本标签.但我发现它"缺失",或者在我使用时消失frame.pack_propagate(0)

import tkinter as tk

root = tk.Tk()
frame = tk.Frame(root, width=400, height=400)
# Does not work at the moment, textBox is missing
# frame.pack_propagate(0) 
frame.pack()

textBox = tk.Label(frame, text="(x,y): ")
textBox.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,你能解释为什么我使用frame.pack_propagate(0)替代frame.pack()方法时我的textBox(Label)没有出现吗?其次,有没有办法在不使用画布的情况下设置窗口大小?我想知道,因为我正在写一系列小程序来教我的朋友关于tkinter,然后向他介绍画布.如果我的tkinter样本的窗口大小都相同,那将是很好的.我也想知道(好奇).非常感谢你.

我在MAC OS 10.5.8上使用python 3.2.2.

python label tkinter

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

Python 中列表字典的最小总和

我是 Python(和 stackoverflow)的新手……请耐心等待!我有一本看起来像这样的字典:

valueDict[i] = [x,y]

我想根据 x 和 y 的总和找到最小键。我知道我可以使用的值字典:

minVal = min(valueDict, key=valueDict.get)

但我不认为我可以为列表字典修改这种方法。

python dictionary

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