我目前正在处理一个数据集,其格式为表格,带有标题.我需要做的是循环遍历特定列中的所有单元格并更改内容.通过对MSDN的研究,我想出了以下for循环
for i = 1 to NumRows
Cells(i,23).Value = "PHEV"
next i
Run Code Online (Sandbox Code Playgroud)
因此,这会将第23列中的所有单元格更改为"PHEV".但是,我没有构建我自己正在使用的表,因此我不能保证我感兴趣的列将是第23列.
我想实现类似于以下内容:
for i = 1 to NumRows
Cells(i,[@[columnHeader]]).Value = "PHEV"
next i
Run Code Online (Sandbox Code Playgroud)
当然,我知道这种语法不正确,但希望它足以说明我的目标.
所以我正在通过在python中乱搞类来熟悉面向对象的编程.下面是我尝试在解释器中实现的简单代码.
class Test(object):
def set_name(self, _name):
name = _name
def set_age(self, _age):
age = _age
def set_weight(self, _weight):
weight = _weight
def set_height(self, _height):
height = _height
Run Code Online (Sandbox Code Playgroud)
当我启动python时,我运行以下命令:
>>>import Test
>>>Test.set_name("Sean")
Run Code Online (Sandbox Code Playgroud)
然后我收到这个追溯:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'set_name'
Run Code Online (Sandbox Code Playgroud)
我将这一切都基于此处的官方模块文档.
我已经阅读了很多关于OOP的文档,但我还是很新的,所以我确信还有一些东西正在我脑海中.这个错误意味着什么?
在此先感谢您的帮助.
我现在正在尝试自学python,而我正在使用"学习Python艰难之路"中的练习来完成这项工作.
现在,我正在进行涉及while循环的练习,在这里我从脚本中获取while循环,将其转换为函数,然后在另一个脚本中调用该函数.最终程序的唯一目的是将项添加到列表中,然后在列表中打印.
我的问题是,一旦我调用该函数,嵌入式循环决定无限继续.
我已经多次分析了我的代码(见下文),并且找不到任何明显的错误.
def append_numbers(counter):
i = 0
numbers = []
while i < counter:
print "At the top i is %d" % i
numbers.append(i)
i += 1
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
count = raw_input("Enter number of cycles: ")
print count
raw_input()
append_numbers(count)
Run Code Online (Sandbox Code Playgroud) 因此,我正在研究此宏,该宏根据表中的其他列自动将列添加到表中。所以这是功能:
我在此表中有许多列,标题为“ CY 2010”-“ CY 2020”。这些年将不可避免地发生变化。然后,我想为表中的每个“ CY”列添加一列。此外,我希望这些列的标题与年份匹配,但请说“内容量年份”
当前,我有以下代码可以适当地添加列:
Sub AddContentValueColumns()
'
' AddContentValueColumn Macro
' Adds yearly vehicle content value columns to Propulsion data table.
'
'
last = [A1].Value ' cell contains number of "CY" columns in sheet
' Debug.Print (last)
For Count = 1 To last
Dim oSh As Worksheet
Set oSh = ActiveSheet
oSh.ListObjects("PropTable").ListColumns.Add
Next Count
End Sub
Run Code Online (Sandbox Code Playgroud)
这可以添加列,但是当前仅将列添加到标有“ CY 2021”的表的末尾,依此类推。
那么,如何修改上面的代码来命名列呢?
谢谢。
-西恩
我在我正在构建的工作表上遇到了一些问题.我想在表中的特定位置插入一列,然后设置标题.
我搜索了一会儿,发现(某些版本)以下代码:
ActiveSheet.Columns(2).Insert
Run Code Online (Sandbox Code Playgroud)
这适用于插入列,但我不知道如何在此之后更改表的标题.
此外,我之前在这里有一些建议,即在表的末尾添加列并命名它们.
代码是:
Dim oSh As Worksheet
Set oSh = ActiveSheet
Dim oLc As ListColumn
Set oLc = oSh.ListObjects("PropTable").ListColumns.Add
oLc.Name = "XYZ"
Run Code Online (Sandbox Code Playgroud)
我尝试以各种方式结合这两种方法,但我没有运气.有没有办法修改第二个代码块,以便它在特定位置插入一列,而不是只添加一列?
谢谢.
-Sean
我目前正在尝试根据工作表更改编写一个宏,其中表列中的字母会自动转换为大写.因此,例如,如果我将"abcde-12345-678"输入到单元格中,它将自动更正为"ABCDE-12345-678".在做了一些挖掘之后,我找到了一些适用于某些人的代码,但是我无法根据自己的需要进行调整.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub
Run Code Online (Sandbox Code Playgroud)
我想谈两件事.第一个是,这个代码目前不适合我.我根据作者(位于Sheet1对象中)在正确的位置.有什么想法为什么这不起作用?
第二个是我想修改代码以引用表列而不是范围.例如,我尝试将上面代码的第二行更改为以下内容(我的表名是ReviewTracker,我感兴趣的列是产品编号):
If Intersect(Target, Range(ReviewTracker[[@Headers],[Product Number]])) Is Nothing Then Exit Sub
Run Code Online (Sandbox Code Playgroud)
这返回了编译错误"Expected:list separator or)".所以它显然有些不对劲,但希望它可能有助于说明我正在努力实现的目标.
提前感谢您对此问题的任何帮助.
-Sean
我有一个关于 C sizeof() 函数的简单问题。我将一个数组传递给一个函数,在该函数内,我想检查数组的大小。然而,无论输入数组的大小如何,在函数内部,它的大小似乎总是为 4。例如:
void checkArraySize(char data[])
{
int internalSize = sizeof(data); //internalSize is reported as 4
}
void main(void)
{
char data[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
int externalSize = sizeof(data); //externalSize is reported as 8
checkArraySize(data);
}
Run Code Online (Sandbox Code Playgroud)
正如代码中的注释所述,在调用像 checkArraySize() 这样的函数之前,我检查了数组的大小,它显示 8。但是,当我检查函数内数组的大小时,它只报告为具有4 个元素(无论输入数组的大小如何,它都会报告 4 个元素)。
很多时候,当我看到这样的问题时,是因为我对这个话题的理解存在差距。所以,我确信我只是错过了传递数组如何工作的一些东西。如果没有,关于为什么会发生这种情况有什么想法吗?
注意:这是在 PIC32 上进行的,因此我使用 Microchip 的 MPLAB X IDE 和 XC32 编译器。
我在使用Python(3.5)中的ttk / tkinter搞砸了,而按钮也遇到了一些问题(特别是ttk.Button)。
无论我尝试什么,都无法终生获得图像显示在按钮上。
我有以下代码:
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
class Example(ttk.Frame):
def __init__(self, master):
ttk.Frame.__init__(self, master)
master.title('Button Test')
self.configure(padding='10 10 10 10')
self.grid(column=0, row=0, sticky=(N, E, W, S))
buttonImage = Image.open('play.png')
buttonPhoto = ImageTk.PhotoImage(buttonImage)
myButton = ttk.Button(self, image=buttonPhoto, padding='10 10 10 10')
myButton.grid(column=1, row=1, sticky=(E, W))
if __name__ == "__main__":
root = Tk()
example = Example(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这是我在此处,此处以及在StackOverflow上的用户中找到的示例的组合。
预先感谢您的任何想法/见解。
-西恩
excel ×4
excel-vba ×4
vba ×4
python ×3
arrays ×1
c ×1
class ×1
excel-2010 ×1
formatting ×1
function ×1
imagebutton ×1
import ×1
module ×1
pic32 ×1
python-3.5 ×1
tkinter ×1
ttk ×1
while-loop ×1