excel vba排序错误1004

时间:2015-04-27 13:15:00

标签: excel vba sorting buffer

我正在使用此代码进行排序(选中Excel 2010/2013):

    Worksheets("Tabelle4(1)").Activate
ActiveSheet.Sort.SortFields.Add Key:=Range( _
        "W2:W51"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal

我用不同的值循环一张表70次并排序并将它们导出为pdf。 一切正常,但大约30次后我收到错误1004。 如果我再次在这一点开始循环30它可以正常工作。 问题似乎与价值无关。 excel中是否有缓冲区,我不时要清除它?

2 个答案:

答案 0 :(得分:0)

你应该不时清理你的排序字段,因为它们只是累积起来,你很难确定它们的优先顺序。

只是不要使用Activate,也不要使用Select更糟糕,所以只需将Sheets().ActivateActiveSheet.Sort合并到Sheets().Sort,您的代码就会效率更高。

这可以帮到你:

With Worksheets("Tabelle4(1)")
        .Sort.SortFields.Add _
            Key:=Range("W2:W51"), _
            SortOn:=xlSortOnValues, _
            Order:=xlDescending, _
            DataOption:=xlSortNormal

        .Sort.Orientation = xlTopToBottom
        .Sort.Apply
        'here is your export

        .Sort.SortFields.Clear
End With

答案 1 :(得分:0)

from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class LoginScreen(BoxLayout):

    def __init__(self, **kwargs):
        super(LoginScreen, self).__init__(**kwargs)
        self.orientation = 'horizontal'

        self.container_Flow = BoxLayout(orientation = 'horizontal', size_hint = (1,1))
        self.text_flow = TextInput(text='500', font_size=40, size_hint = (0.6,1))
        self.button_plus = Button(text = '+', size_hint = (0.2,1))
        self.button_minus = Button(text = '-', size_hint = (0.2,1))
        self.container_Flow.add_widget(self.text_flow)
        self.container_Flow.add_widget(self.button_plus)
        self.container_Flow.add_widget(self.button_minus)

        self.add_widget(self.container_Flow)
        self.button_plus.bind(on_press = self.calc_plus)
        self.button_minus.bind(on_press = self.calc_minus)

    def calc_plus(self, button_plus):
        Q = int(self.text_flow.text)
        self.text_flow.text = str(Q + 25)
    def calc_minus(self, button_minus):
        Q = int(self.text_flow.text)
        self.text_flow.text = str(Q - 25)

class MyApp(App):

    def build(self):
        return LoginScreen()

if __name__ == '__main__':
    MyApp().run()

'这有效,但不会对数据进行降序排序。