小编Bru*_*yne的帖子

VBA - 查找包含特定文本的第一行和最后一行

我有一个很长的(2,000 +行)不同值列表.我试图找到每个值的第一行和最后一行.作为示例(注意:所有数据都在一列中):

Bats
Bats
Bats
Bats
Bats
Bats
Fun
Fun
Fun
Fun
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Balls
Balls
Balls
Balls
Balls
Balls
Balls
Balls
Run Code Online (Sandbox Code Playgroud)

所以,我想知道找到第一行(从顶部开始)和包含每个单词的最后一行的最快方法是什么.因此,蝙蝠从第1行开始,在第6行结束.乐趣从第7行开始,在第10行结束.

除了我将每个单元格与之前的单元格进行比较的循环之外,还有更快速的方法可以实现这一点,如果它们不同,可以添加行变量吗?

非常感谢任何建议/帮助!

编辑:在VBA中查找如何执行此操作.

excel vba

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

复印表而不复制按钮

我正在尝试为游戏制作角色创建工具.即将完成,但我想添加一个按钮保存字符代码看起来像这样

Sub Save_character()
Dim ws As Worksheet

Worksheets("character creator").Copy _
After:=ActiveWorkbook.Sheets("character creator")

Set ws = ActiveSheet

ws.Name = Range("b14")

End Sub
Run Code Online (Sandbox Code Playgroud)

但我不希望将此按钮添加到复制的工作表.知道我怎么做吗?

在普罗旺斯.一个VBA/excel新秀

excel vba excel-vba

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

循环浏览当前活动工作表中Excel VBA中的所有命名范围

嗨,我想遍历我在activeworksheet中找到的所有命名范围,然后对它们做一些事情。但是,我使用了下面的代码,但似乎什么也没产生。另外,如果我可以遍历包含某些单词的命名范围,那将是很好的。例如,我的命名范围被命名为data1,data2,data3,依此类推。如果它们包含单词数据,我只想对其进行处理。

For Each nm In Activesheets.Names
    MsgBox "nm.name"
Next nm
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

为TRUE,评估返回-1?(为什么不1)

我和另外一个问题帮助,我意识到,使用Evaluate在VBA仿佛回到-1TRUE陈述.

数据:

Column A    Column B
A           A
A           B
C           C
Run Code Online (Sandbox Code Playgroud)

因此,如果我放下=INT(A2=B2)并拖下来,我会得到1, 0, 1我期望的.

但是,使用以下VBA,我得到了-1, 0, -1.

For i = 2 To 4
    Cells(i, 4).Value = Evaluate(Int(Cells(i, 1) = Cells(i, 2)))
Next i
Run Code Online (Sandbox Code Playgroud)

为什么要EVALUATE使用-1TRUE

excel vba

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

Excel VBA - 检查值是否为DOUBLE类型

我有一列数字,我使用VBA将它们除以1000.但是,如果那里没有小数,我只想这样做.即10093,20398,2039348,298,299,10这样的数字将被除以1000,但2938.39,2883.2,.2将不会.

我只想创建一个循环来检查单元格值是否为DOUBLE,如果是,则跳过它 - 否则,除以.

所以,我认为这可能有用,但它没有:

For Each cel In importWS.Range(Cells(2, 2), Cells(dataLastRow - datafirstrow + 1, 2))
    If Not CDbl(cel.Value) Then
        cel.Value = cel.Value / 1000
    End If
Next cel
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

excel vba excel-vba

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

excel每四行删除一次

对 VBA 非常陌生,但有使用其他一些语言的经验,但需要这方面的帮助。我正在尝试创建一个每 4 行删除一次的宏。例如离开第 1 行但删除 2,3,4,5 跳过 6 并继续。这是我到目前为止:

Sub Macro1()

For x = 100 To 1 Step -2
    Range(x & ":" & x).Select
    Selection.ClearContents
Next x
End Sub
Run Code Online (Sandbox Code Playgroud)

我不确定我的 For 循环是否缺少某些东西,或者我可能需要某种索引计数器来告诉它一次删除四个。

excel vba

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

Pandas - 将来自多个文本文件的信息合并到单个数据帧

.txt在一个文件夹中保存了多个文本 ( ) 文件。我正在尝试将它们全部组合成一个数据帧。到目前为止,我已经能够将它们结合起来,但不是以我想要的方式。

文本文件(命名yob####.txtwhere ####is a year)包含如下信息:

Jennifer,F,58376
Amanda,F,35818
Jessica,F,33923
Melissa,F,31634
Sarah,F,25755
Heather,F,19975
Nicole,F,19917
Amy,F,19834
Elizabeth,F,19529
Michelle,F,19122
Kimberly,F,18499
Angela,F,17970
Run Code Online (Sandbox Code Playgroud)

我试图打开每个文件,将年份添加到行的末尾,然后继续。

def main():
    files = file_paths(FILE_FOLDER) # returns a list of file paths, i.e. ["C:\Images\file.txt","C:\Images\file2.txt", ...]

    df = []
    for file in files:
        year = file.split("\\")[-1][3:7] 
        df.append(pd.read_table(file)+","+year)
    big_df = pd.concat(df, ignore_index=True, axis=1)
    big_df.to_csv("Combined.csv", header=False, index=False)
Run Code Online (Sandbox Code Playgroud)

这几乎有效......除了它需要每个文件并将数据放在一列中,下一个文件放在第二列中,下一个文件放在第三列中,等等。

电流输出: 在此处输入图片说明

预期的输出是相同的,除了在打开 1881 文件时,它将信息添加到1880. 然后1882追踪1881数据等。

python dataframe pandas

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

Excel VBA 组合框默认值

我正在寻找一种方法让我的用户表单上的组合框具有默认值无或诸如“从下面选择”之类的东西。

尝试了各种 google 建议,但如果它是代码的第一次迭代,或者更糟的是之前选择的值,则在我的组合框中显示的值是空白的。

代码如下...

' Begin Code
Private Sub UserForm_Initialize()
    Dim RngTags As Range, RngNames As Range, i As Long

ComboBox1.Value = "SomeText"

'Set rng1 = Sheets("Admin").Range("deptrange2")
Set rng1 = Range("ALLDEPT")

With ComboBox1
    .ColumnCount = 1
    .Style = fmStyleDropDownList
    .TextAlign = fmTextAlignLeft
    .BoundColumn = 1

    For i = 1 To rng1.Count
        .AddItem rng1(i).Value
        .List(.ListCount - 1, 1) = rng1(i).Value
    Next i
End With

End Sub


' Puts the value chosen from the list on admin f6
Private Sub ComboBox1_Change() …
Run Code Online (Sandbox Code Playgroud)

excel vba combobox default

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

循环遍历工作表中的区域/区域?

我有一个工作表,其中包含许多我想循环查看的不同区域。我将进行一些计算,并认为它比在列中逐个单元格更快/更有效。

我尝试了一些不同的东西,但不知道如何跳到下一个区域。我已经发表了一些评论,最有希望的是最后一个(For each cel in rng...,但是我做了第一个cel.CurrentRegion.Select,然后再做事情,我如何跳转到下一个区域?

这是一个滑稽的 .gif 文件,展示了它的原样......

Sub loop_through_zones()
Dim rng As Range, area As Range, singleArea As Range, cel As Range
Set rng = Range("A2:D15")

For Each area In rng.Areas ' This just selects all the data.
    area.Select
Next area

For Each area In rng.CurrentRegion ' this just loops through cells in an area.
    area.Select
Next area

For Each cel In rng
    cel.CurrentRegion.Select ' gets current region!
    'do something with region here
   ' …
Run Code Online (Sandbox Code Playgroud)

excel vba

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

SublimeText-输入“ html” + {TAB}仅返回HTML,而不是完整的默认标签

我刚刚安装了Emmet,当我键入内容时,html TAB我只会得到

<html></html>
Run Code Online (Sandbox Code Playgroud)

在此之前,Sublimetext将创建所有默认标签:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

是否有设置或我可以在Emmet或Sublime文本中更新的内容,以便启用Emmet时可以获得“完整”标签?

该文件是一个.html文件,在Sublime中设置为HTML。

这是一个快速的.gif-我从Emmet diabled开始:

在此处输入图片说明

sublimetext3 emmet

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

如何使用 lambda 将样式应用于 Pandas DataFrame

我有一个数据框,我想将单元格突出显示为红色,其中出现“BBC”一词。

看着这个SO线程这个我尝试了以下操作:

df.style.apply(lambda x: ["background-color: red" if x == "BBC News" else "background-color: green"])
Run Code Online (Sandbox Code Playgroud)

或者

df.style.apply(lambda x: ["background-color: red" if v == "BBC News" else "background-color: green" for v in x], axis=None)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但这不会给任何东西上色。FWIW,我不知道我使用的示例中的x或是什么。v我假设x是一个细胞,并且v是细胞的一部分?

如何有条件地设置单元格格式?我还会添加其他内容,即如果“CNN”出现在单元格中,则颜色为黄色等。

编辑:我简单地尝试过df.style.apply(lambda x: ["background-color: green"]),但没有发生任何事情(如果我使用#ff0000或 ,则相同rgb(0,0,255))。

明确地说,我正在做:

df.style.apply(lambda x: ["background-color: #ff0000" if v['newsSource'] == "BBC News" else "background-color: #ffff00"], axis=None)
df.to_html("styletest.html")
Run Code Online (Sandbox Code Playgroud)

所以我希望颜色在HTML 文档中可见,而不是数据框本身。

python python-3.x pandas

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

NullPointerException - 尝试调用虚拟方法 `notifyDataSetChanged()` - 看不到创建的列表

我正在按照本教程的方式工作,并且一直在向列表添加名称并填充列表。

这是我想要得到的,我在输入框中输入的名称列表: http://www.raywenderlich.com/78576/android-tutorial-for-beginners-part-2

(带下划线的“Darryl”是输入框,它在顶部显示该名称(点击按钮后),然后将其添加到列表中)。

我收到这个错误:

08-24 18:17:50.903  21935-21935/com.example.batman.myapplication E/AndroidRuntime? FATAL EXCEPTION: main
    Process: com.example.batman.myapplication, PID: 21935
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ArrayAdapter.notifyDataSetChanged()' on a null object reference
            at com.example.batman.myapplication.MainActivity.onClick(MainActivity.java:65)
            at android.view.View.performClick(View.java:5217)
            at android.view.View$PerformClick.run(View.java:20983)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:145)
            at android.app.ActivityThread.main(ActivityThread.java:6141)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Run Code Online (Sandbox Code Playgroud)

这是我的MainActivity.java

package com.example.batman.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

public class …
Run Code Online (Sandbox Code Playgroud)

java android

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

计算(并激活)打开的Word文档

这很奇怪 - 我发誓我只是成功使用了这段代码,但不是它不起作用:

Sub t()
Dim wdApp As Object
Set wdApp = GetObject(, "Word.Application")
Debug.Print wdApp.Documents.Count
End Sub
Run Code Online (Sandbox Code Playgroud)

从Excel中,它应该只是意识到有一个Word文档打开,并返回1.但是,我0出于某种原因.我也试过了Set wdApp = CreateObject("Word.Application").

我可以俯瞰什么?没有抛出任何错误,它只是没有显示我打开了一个文档.

(注意:我从这个帖子中得到了想法,因为我想复制Excel范围并粘贴到Word文档中.)

excel vba excel-vba

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