小编exc*_*guy的帖子

Excel VBA,转换数据会导致excel崩溃

我有一个崩溃我的Excel的代码,它从一张纸上获取数据并将其从表格视图转换为垂直.我认为它很慢,因为它将数据库视图从超过45k行.

有没有人有任何优化此代码的技巧?在next c循环中崩溃我的excel

此外,我尝试在excel 2010中运行它,得到一个overflow错误,但通常2010运行更好,2013年缓慢或没有响应.但我想让它在2013年工作.

Sub test()
    Call ReversePivotTable("Sheet1", "A", "C", "Sheet2", "Name")
End Sub



Sub ReversePivotTable(source_sheet, from_col, to_col, target_sheet, Optional type_header = "type", Optional value_header = "value")

    Application.ScreenUpdating = False
    LAST_ROW = Sheets(source_sheet).Cells(Rows.count, 1).End(xlUp).Row
    If LAST_ROW > 1 Then
        Sheets(target_sheet).Cells.ClearContents
    Else
        Exit Sub
    End If

    pvt_type_col = Sheets(target_sheet).Range(to_col & 1).Offset(0, 1).column 'D
    pvt_value_col = Sheets(target_sheet).Range(to_col & 1).Offset(0, 2).column 'E

    'get headers
    Sheets(source_sheet).Range(from_col & ":" & to_col).copy
    Sheets(target_sheet).Range("A1").PasteSpecial xlPasteValues
    Sheets(target_sheet).Cells(1, pvt_type_col).Value = type_header
    Sheets(target_sheet).Cells(1, pvt_value_col).Value = …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

TypeError:write()参数必须是str而不是byte,升级到python 3

我正在尝试将代码升级到python3。这行遇到了一些麻烦,

output_file = open(working_dir + "E"+str(s)+".txt", "w+")

output_file.write(','.join(headers) + "\n")
Run Code Online (Sandbox Code Playgroud)

并得到这个错误 TypeError: sequence item 0: expected str instance, bytes found

我尝试过的

  output_file.write(b",".join(headers) + b"\n")

TypeError: write() argument must be str, not bytes
Run Code Online (Sandbox Code Playgroud)

香港专业教育学院也尝试decode()在联接上使用,也尝试使用rw+b打开。

如何str在python 3中转换为?

python python-3.x

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

python pandas,read_csv上的unicode解码错误

导入 csv 文件时出现错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 15: invalid start byte

追溯:

Traceback (most recent call last):

  File "<ipython-input-2-99e71d524b4b>", line 1, in <module>
    runfile('C:/AppData/FinRecon/py_code/python3/DataJoin.py', wdir='C:/AppData/FinRecon/py_code/python3')

  File "C:\Users\stack\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "C:\Users\stack\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/AppData/FinRecon/py_code/python3/DataJoin.py", line 500, in <module>
    M5()

  File "C:/AppData/FinRecon/py_code/python3/DataJoin.py", line 221, in M5
    s3 = pd.read_csv(working_dir+"S3.csv", sep=",") #encode here encoding='utf-16

  File "C:\Users\stack\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py", line 702, in parser_f
    return _read(filepath_or_buffer, kwds)

  File "C:\Users\stack\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py", line …
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas

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

熊猫,删除最后一个“_”之后的所有内容

我在下面看到的列中有以下类型的字符串。我想解析_每个字符串的最后一个之后的所有内容,如果没有,_则保留字符串原样。(因为我下面的尝试只会排除没有 no 的字符串_

到目前为止,我已经在下面尝试过,在这里看到:Python pandas: remove everything after a delimiter in a string。但它只是在第一次之后解析出所有内容_

d6['SOURCE_NAME'] = d6['SOURCE_NAME'].str.split('_').str[0]

以下是我的 SOURCE_NAME 列中的一些示例字符串。

Stackoverflow_1234
Stack_Over_Flow_1234
Stackoverflow
Stack_Overflow_1234
Run Code Online (Sandbox Code Playgroud)

预期的:

Stackoverflow
Stack_Over_Flow
Stackoverflow
Stack_Overflow
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

python pandas

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

我的IF/ELSE IF声明在VBA中不起作用

我无法在我的代码中实现以下if语句:

IF(O3<0,"Y",N")
Run Code Online (Sandbox Code Playgroud)

有人可以帮助改变我的代码以包含这个if语句吗?这是我尝试过的:

  If Range("O3:O4183") < 0 Then Range("P3").Value = "Y"
    Worksheets("Sample File").Range("P3:P4183").FillDown

    ElseIf Range("O3:O4183") > 0 Then Range("P3").Value = "N"
            Worksheets("Sample File").Range("P3:P4183").FillDown

            End If
Run Code Online (Sandbox Code Playgroud)

完整代码:

Sub stackoverflow()

Dim rng As Range

''sample file creation
''values

        Range("A3").Value = "CSH"   ''hardcode
        Worksheets("Sample File").Range("A3:A4183").FillDown

        Set rng = Worksheets("File").Range("C2:C4182")
        Worksheets("Sample File").Range("B3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

                Set rng = Worksheets("File").Range("D2:D4182")
        Worksheets("Sample File").Range("C3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

         Range("D3").Value = "1"   ''hardcode
        Worksheets("Sample File").Range("D3:D4183").FillDown

                Set rng = Worksheets("File").Range("E2:E4182")
        Worksheets("Sample File").Range("E3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

                Set rng = Worksheets("File").Range("E2:E4182")
        Worksheets("Sample …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

VBA,跳过单元格

我想循环我的范围并合并逻辑,如果B2:B100为"否",则跳过.

原始代码:

 Dim cell As Range
    For Each cell In Range("A2:A100")
        FilePaths.Add cell.Value
    Next cell
Run Code Online (Sandbox Code Playgroud)

试:

If cell.Range("B2:B100") <> "Yes" Then
Run Code Online (Sandbox Code Playgroud)

不确定下一步该去哪里.我想去col A的下一个单元格,或者继续回到col A.

excel vba excel-vba

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

熊猫,如果值在列中,则更改为另一列

我想做:如果一列包含 values ,然后将更改应用于 joinkey 列,如果列包含不同的值,然后将不同的更改应用于 joinkey 列等。

如果 df.loc[df['product'].isin('value1','value2')那么df['joinkey'] = df['joinkey'] + variable1

然后重复

如果 df.loc[df['product'].isin('value3','value4')那么df['joinkey'] = df['joinkey'] + variable2

希望这是有道理的,任何帮助将不胜感激。

谢谢。

python pandas

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

VBA,使用InstrRev的最后一个"/"

我有代码解析字符串上的最后一个单词.即.Stack/Over/Flow会给我"Flow".

但我希望得到"Over/Flow".

这就是我得到的,但只能得到"流动"

arr(counter - 2) = "'" & mid(Text, InStrRev(Text, "/") + 1) & "'"

excel vba excel-vba

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

标签 统计

excel ×4

excel-vba ×4

vba ×4

pandas ×3

python ×3

python-3.x ×2