精华内容
下载资源
问答
  • <p>I have a code which gets an input then put it in a formula and at last gives an output. I want the my input value ($length) to be set from cell <code>A2</code> of <code>Sheet1</code> in the ...
  • 尝试了很多办法,最后确定,这样简单可行。 第一步,将此单元格设置为“自动...第二步,在代码中需要换行的位置输入 “\n” 首发http://anforen.com/wp/2017/02/how_to_use_code_in_excel_to_achieve_cell_return_...

    已启用新博客:http://ant73.com 若有需要联系或其他,请访问 http://ant73.com

    尝试了很多办法,最后确定,这样简单可行。


    第一步,将此单元格设置为“自动换行”


    第二步,在代码中需要换行的位置输入 “\n”

    首发 http://anforen.com/wp/2017/02/how_to_use_code_in_excel_to_achieve_cell_return_line_change/
     


    例如:String result=”第一行 \n 第二行”;


     


    是不是很简单啊。

    展开全文
  • 如何调试Excel VBA代码

    千次阅读 2019-06-03 03:08:50
    错误的源代码格式,比如if后面缺少then:编辑器该行会变成红色。 错误的语法结构,比如if和end if没有对应上:代码运行前会给出编译错误提示。 类型不匹配:函数输入的参数与定义时的参数类型不同时会出现该类...

    Excel VBA出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
    1.编译错误
    常见的编译错误有:
    错误的源代码格式,比如if后面缺少then:在编辑器中该行会变成红色。
    错误的语法结构,比如if和end if没有对应上:代码运行前会给出编译错误提示。
    类型不匹配:函数输入的参数与定义时的参数类型不同时会出现该类错误。
    变量未定义:指使用了没有申明的变量类型(当Option Explicit时)

    建议:
    格式规范化,严格缩进。VBA插件Smart Indent是一个很好的辅助工具。这样做让源代码更具备可读性,从而更快检测源代码格式和语法结果错误,。
    勾选上「工具——选项——编译器——要求变量声明」,或者在每个代码模块最前面手工加上 Option Explicit 。在代码编辑中,很多错误只是因为手误,这个选项会让编译器强制检查变量申明,从而在编译时便发现错误。

    2.运行中出错或者运行结果错误
    当程序编译没有问题,但运行中出错或者运行的结果与想象中不符,就需要用到VBA的调试功能。下面是VBA提供的几个重要的调试功能,这些功能能让程序停在某些特定的位置上等待检查:
    F9:设置程序断点,在代码左侧栏点击有相同效果。重新按F9即取消断点。
    F8:单步跟踪,当调用子函数会跟踪到子函数内部
    Shift+F8:单步跟踪,但不会进入子函数内部
    Ctrl+Shift+F8:跳出正在跟踪的函数,直接返回上一层函数。
    F5:运行程序,直到出现错误、程序结束或程序断点为止
    Ctrl+F8:运行程序,直到出现错误、程序结束、程序断点或当前光标所在行为止
    debug.print var:在立即窗口中显示var的值
    debug.assert var:当var==false时程序自动停止

    以上命令也可在菜单和命令栏中获取。
    在调试过程中,可通过下面几种方法查看各个变量的值,当变量和预期不一样时,也就找到了程序出错的原因,便能对照修改:

    立即窗口(快捷键Ctrl+G):在该窗口里会显示debut.print的结果值,以及随时计算和运行代码。在代码前面添加「?」,可以在立即窗口中显示运行结果。
    监视窗口:可以将变量以及表达式添加到监视窗口,可以实时查看变量和表达式的值。支持将代码窗口里的变量和表达式拖入到见识窗口
    本地窗口:本地窗口里可以查看目前的local变量和global变量的变量值。
    编辑窗口:将鼠标停在编辑窗口的变量上可显示该变量的值。
    有一些方法可减少程序错误以及降低调试的难度:
    添加重要的代码注释。
    源代码格式规范化,增加代码可读性。VBA插件Smart Indent是一个很好的辅助工具。
    尽可能声明变量类型,少用Variant变量。
    注意函数的参数传递方式,默认为传引用,子函数会修改变量的值。
    尽量将功能函数化,不同的功能分开写。
    避免在VBA中引用绝对地址,如Range(“A1”)。可先在Excel中定义名称"abc=AA1",然后引用Range(“abc”)。
    避免使用ActiveSheet, ActiveWorkbook等可变变量,用Sheet1,ThisWorkbook这种绝对变量。绝对变量不受外界操作影响。

    VBA测试与错误处理
    1.测试
    测试代码,检查它是否正确。为确保代码能够正常作用,必须尽力模拟代码运行的不同环境,并检查其正确性。
    程序中的错误一般分为如下几类:
    (1)语法错误(如输入时关键字或标点符号拼写错误) 。
    (2)编译错误(如使用对象的方法时,该对象并不支持这个方法) 。
    (3)运行期间错误(如除0、打开或关闭并不存在的文档、关闭未打开的文档等) 。
    (4)逻辑错误(逻辑锗误是最难查找的错误类型,它们是由程序中使用的逻辑引起的。
    2.调试
    要确保代码中的变量和表达式按照预想的方式运行,可以使用VBA中的各种调试工具跟踪它们。VBE有以下调试工具。
    (1) 中断模式
    ①进入中断模式方法:在过程的开始位置按下F8键(“逐语句”执行)。使用“切断断点“(F9键或者单击当前空白指示器栏)。使用Stop语句。当过程运行时,按下Ctrl+Break键。使用运行期间错误MsgBox对话框。
    ②退出中断模式方法:从运行菜单中选择“运行子过程/用户窗体)”;或者按下F5键,或者单击“调试”工具栏上的“运行子过程/用户窗体”按钮。从“运行”菜单中选择“重新设置”选项,或者单击“调试”工具栏上的“重新设置”按钮。
    (2) 单步执行过程
    ① 单步执行过程:从“调试”菜申中选择“逐过程”选项,或者按下Shift+F8键。
    ②跳出过程(跳过程剩余部份):从“调试”菜单中选择“跳出”选项,或者按下Ctrl十shift十F8键。
    ③运行到光标处(跳过一组语句):从“调试”菜单中选择“运行到光标处”或按下Ctrl+F8键。
    ④设置下一条语句为光标所指语句(要警惕会忽略不执行中间的语句):从“调试”菜单中选择“设置下一条语句”或者按下Ctrl十F9键。
    ⑤“显示下一条语句”选项指明下一个将要执行的语句是什么。当需要在程序窗口中监视很多过程、却丢失了跟踪时,就可使用这个调试功能。
    (3) 监视过程
    ①“本地”窗口(显示当前过程中使用所有变量及其值,还会显示当前加载窗体和控件的属性。):从“视图”菜单中选“本地窗口”选项。
    ②“调用堆栈”对话框(查看所有活动的过程调用):从“视图”菜单中选“调用堆栈”或按下Ctrl+L键。
    ③“立即窗口”(可查询并设置变量值,创建或撤销对象,执行单行命令)。从“视图”菜单中选择“立即窗口”或按下Ctrl+G键。
    ④“监视窗口”(是一个调试工具,在中断模式下可使用它更改变量和表达式的值,以查看不同的值如何影响代码)。从“视图”菜单中选择。
    3.预防错误
    (1)注释 。
    (2)缩进代码:Tab键或启用Too1s(工具)菜单选Options(选项)Editor(编辑器)选项卡中的Auto Indent(自动缩进)。
    (3)使代码模块化。
    (4)显式声明变量:使用Option Explicit语句,或启用工具菜单选“选项”编辑器选项卡中的“需要变量声明”复选框。

    (5)避免使用变体Variant(当某变量可能包含NULL值时就只能惟一指定Variant类型了)。
    (6)打开语法检查:启用工具菜单选“选项”编辑器选项卡中“自动语法检测”。
    (7)谨防Dim陷阱:Dim str1, str2 As String '并未声明str1变量。
    4.错误处理
    调试只能够发现可以预测的错误,要处理不可预测的和不可避免的错误时,就必须使用错误处理。通过启用错误处理,捕获并提示错误处理,可以使程序更健壮。就可以使应用程序更稳定、更健壮。如果应用程序中包含了好几个过程,那么可以考虑采用集中式错误处理程序。
    (1) 捕获错误:On Error Goto line (On Error Goto 0会在当前过程禁用错误处理程序) 在这个语法中,line指定了发生运行期间错误时控制将跳转到的代码行。
    (2) 编写错误处理程序:给用户显示错误信息;提示补救方法;允许继续或取消操作。使用Err对象:

    属性 说明
    Number 存储最后一个错误的数字ID。这是默认属性
    Description 存储说明错误的有关信息
    Source 包含发生了错误的对象名或应用程序名
    HelpFile 包含帮助文件的名字
    HelpContextID 包含错误号对应的帮助上下文ID
    LastDLLError 包含最后一次调用DLL的系统错误代码

    Raise方法可以让用户自定义错误处理信息,还可把错误处理信息传回调用过程: Err.Raise number[, source, description, helpFile, helpContext]
    Clear方法清除Err对象的所有属性值:Err.Clear (当调用On Error, Exit Sub, Exit Function, Exit Property, Resume 等语句时,会自动调用Err.Clear方法。)
    (3) 退出错误处理程序:
    ①0n error Resume:当错误处理程序已经修复错误后,可以用它来返回控制给引起错误的语句。但注意如果错误还在的话,会引起无限循环。
    ②0n error Resume Next:忽略错误语句,继续下一句。
    ③Resume [LineLabel]: 把控制传递给行标号(必须和Resume语句处在同一个过程中)所在点的语句。
    ④也可使用Exit Sub或者Exit Function甚至End语句退出已产生错误的过程,但这些语句应放在错误处理程序之前,这样当未产生错误时就不会执行错误处理程序。

    展开全文
  • 在Excel中快速输入时间精确到秒

    千次阅读 2019-11-22 20:03:18
    按alt+f11,当前工作表上双击,进入代码编辑窗口, 输入: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Target = Now() End Sub 二: 这其中可能需要启用宏才能使用,...

    Excel双击表格就可以快输输入时间

    一:
    按alt+f11,在当前工作表上双击,进入代码编辑窗口,
    输入:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Target = Now()

    End Sub
    二:
    这其中可能需要启用宏才能使用,下面是如何启用宏表格:
    1、excel选项
    2、信任中心
    3、信任中心设置
    4、启用所有宏
    三:
    如果需要保存为启用宏的文档格式的话,保存时,选择“否”;选择为xlsm格式或xls格式。

    输入数据可以返回时间
    002. B列录入数据时在A列返回记录时间(工作表代码)
    Public Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(, -1) = Now End If End Sub

    展开全文
  • 我目前正在使用...这是我每秒钟显示传感器数据的代码,我不知道如何在excel中保存数据/结果.import RPi.GPIO as GPIOimport dht11import timeimport datetimeimport os# initialize GPIOGPIO.setwarnings(Fal...

    我目前正在使用raspberry pi并使用DHT11每秒读取温度和湿度值.我必须将这些值实时保存到数据库中.这是我每秒钟显示传感器数据的代码,我不知道如何在excel中保存数据/结果.

    import RPi.GPIO as GPIO

    import dht11

    import time

    import datetime

    import os

    # initialize GPIO

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)

    GPIO.cleanup()

    instance = dht11.DHT11(pin=dht11_pin)

    while True:

    cnt += 1

    if cnt%limit_sec == 0 or cnt == 1:

    result = instance.read()

    if result.is_valid():

    if previous_temperature != result.temperature or previous_humidity != result.humidity:

    previous_temperature = result.temperature

    previous_humidity = result.humidity

    counter += 1

    rightnow = datetime.datetime.now()

    if result.humidity>=40:

    print(str(counter)+". Last valid input: " )

    print("Date: " + rightnow.strftime("%d/%m/%Y"))

    print("Time: " + rightnow.strftime("%H:%M:%S"))

    print("Status: Your plant is on the good condition.")

    print("Temperature: %d C" % result.temperature)

    print("Humidity: %d %%" % result.humidity)

    print("*******************************************")

    else:

    print(str(counter)+". Last valid input: " )

    print("Date: " + rightnow.strftime("%d/%m/%Y"))

    print("Time: " + rightnow.strftime("%H:%M:%S"))

    print("Status: Your plant is on the bad condition. Please open the water supply.")

    print("Temperature: %d C" % result.temperature)

    print("Humidity: %d %%" % result.humidity)

    print("*******************************************")

    else:

    print "Invalid result!"

    pass

    time.sleep(sleep_time)

    解决方法:

    首先是导入csv模块然后使用

    使用open("file_name.csv’,’w’,newline =”)作为csvfile:

    writer = csv.DictWriter(csvfile,fieldnames = field_names)

    field_names只是列的键值

    writer.writerow(

    {"日期’:’日期’,’时间’:’时间’,

    "状态’:’状态’,’温度’:’温度’,’湿度’:’湿度’})为excel文件写标题

    writer.writerow(

    {"Date’:rightnow.strftime(“%d /%m /%Y”),’Time’:rightnow.strftime(“%H:%M:%S”),

    "Status’:status,’Temperature’:result.temperature,’Humidity’:result.humidity})根据field_names中的键值在csv文件中写入数据

    完整代码:

    import RPi.GPIO as GPIO

    import dht11

    import time

    import datetime

    import csv

    import os

    # initialize GPIO

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)

    GPIO.cleanup()

    instance = dht11.DHT11(pin=dht11_pin)

    with open("file_name.csv", "w", newline="") as csvfile:

    field_names = ["Date", "Time", "Status", "Temperature", "Humidity"]

    writer = csv.DictWriter(csvfile, fieldnames=field_names)

    writer.writerow(

    {"Date": "Date", "Time": "Time",

    "Status": "Status", "Temperature": "Temperature", "Humidity": "Humidity"})

    while True:

    cnt += 1

    if cnt%limit_sec == 0 or cnt == 1:

    result = instance.read()

    if result.is_valid():

    if previous_temperature != result.temperature or previous_humidity != result.humidity:

    previous_temperature = result.temperature

    previous_humidity = result.humidity

    counter += 1

    rightnow = datetime.datetime.now()

    if result.humidity>=40:

    status = "Your plant is on the good condition."

    print(str(counter)+". Last valid input: " )

    print("Date: " + rightnow.strftime("%d/%m/%Y"))

    print("Time: " + rightnow.strftime("%H:%M:%S"))

    print("Status: Your plant is on the good condition.")

    print("Temperature: %d C" % result.temperature)

    print("Humidity: %d %%" % result.humidity)

    print("*******************************************")

    else:

    status = "Your plant is on the bad condition. Please open the water supply."

    print(str(counter)+". Last valid input: " )

    print("Date: " + rightnow.strftime("%d/%m/%Y"))

    print("Time: " + rightnow.strftime("%H:%M:%S"))

    print("Status: Your plant is on the bad condition. Please open the water supply.")

    print("Temperature: %d C" % result.temperature)

    print("Humidity: %d %%" % result.humidity)

    print("*******************************************")

    writer.writerow(

    {"Date": rightnow.strftime("%d/%m/%Y"), "Time": rightnow.strftime("%H:%M:%S"),

    "Status": status, "Temperature":result.temperature, "Humidity": result.humidity})

    else:

    print "Invalid result!"

    pass

    time.sleep(sleep_time)

    第一个writer.writerow将是你的标题,而field_names只是用作将数据填充到特定列的键

    存储你的状态=”并将它放在writer.writerow()等.

    标签:raspberry-pi3,sensor,soil,python,github

    来源: https://codeday.me/bug/20191008/1873950.html

    展开全文
  • 如何在EXCEL中实现连续编号自动更新打印? 用下列方法,无论你需要输入连续编号的单元格是否改变,均不需要改变代码。 第一步:将下列代码拷贝到宏中(方法请问度娘,搜代码的人应该会的)。 Sub 连续编号() [编号]....
  • 操作步骤(文字): 选择一列; ... 数据验证 类型选择「列表」,然后输入待选择的下拉项:PHP,Java,... 「sheet」上右击,选择「查看代码」,添加如下处理多选逻辑的宏代码: Private Sub Worksheet_Change(ByVal ...
  • 如何用VBA在EXCEL中添加自定义函数

    千次阅读 2018-07-17 14:53:22
    比如 连续自然数m到n求和函数 1、选择“工具”——“宏”——“Visual Basic编辑器”命令(或按快捷键“Alt+F11”),打开...3、代码窗口”中输入下面代码: Function V(m,n) V = n*(m+n)/2 End Function  ...
  • 如何在excel/wps表格合并页签

    千次阅读 2017-10-30 17:35:28
    1、新建一个页签,以便放汇总数据。...4、输入以下代码: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count  If Sheets(j).Name  X = Rang
  • 但是拖放组合框后,如何在其中增加内容呢?笔者给出操作步骤:(1)将组合框拖放到文档,如图1所示。(2)单击右键,在右键快捷菜单选择【查看代码】命令,如图2所示。 (3)进入代码编辑区,输入以下代码:...
  • CorelDraw VBA中,如何只允许...以下VBA代码可以帮助您仅文本框中输入数字,句点(。)和负号,请按照以下方式进行操作: 点击创建一个文本框 开发人员 > 插页 > 文本框(ActiveX控件),然后根据需要绘制...
  • 写论文时,通常要求将结果用excel表示出来,而将matlab的数据结果导入excel中,就成了一个问题。 首先,我们需要将matlab中的程序运行(本文中matlab用的版本为2020a,excel使用的版本为2007),例如下面这个代码,...
  • Excel案例中如何设置鼠标形状呢?... 在excel工作表,按下ALT+F11,打开VBE编辑器,插入——模块,然后在右边的代码窗口输入下面的代码: Sub 如何设置鼠标形状()  Application.Cursor = xlIBeam 'I 形指针  
  • 我们知道,在Excel中我们可以给数据添加下拉选择框 即在数据验证当中选择序列,然后输入选择框的选择范围即可 但是这并不能够实现多选的功能 只能选择若干选择中的一项 我们可以在VBA中使用宏来添加多选框 代码如下...
  • 因为需要读取LCZ分类Excel中的多标签,正在学习如何操作。记录一波~ 借鉴代码连接:零基础使用Python读写处理Excel表格 pyhton版本:3.7 操作界面:pycharm 运行平台:远程GPU(太难了…一切尽摸索之中) 要先学习...
  • EXCEL 中如何将数字转换成英文

    千次阅读 2015-08-07 16:50:31
    财务部提出在EXCEL中输入一个数字,可以自动转换成英文。这样可以节约他们很多重复劳动的时间。其实呢,这个问题不是我的职责范围拉,不过好像同事有EXCEL的问题都会来问问我的,我觉得帮助他们其实我自己也可以得到...
  • matlab代码输入如何换行符utl_sort_transpose_and_summarize_in_one_proc_v2 一个过程对转置和汇总进行排序。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工...
  • 对话框中输入以下代码 sub 合并当前目录下所有工作簿的全部工作表() dim mypath, myname, awbname dim wb as workbook, wbn as string dim g as long dim num as long dim box as string applicati
  • 问题:一个excel中有多个工作表,并且没有按照sheet+数字的形式默认命名,且电脑里没有VB,因此无法查看代码,那么怎么能够快速知道有多少个工作表呢? 随便打开一张工作表,随便点击选中一个单元格,其中完整...
  • 如何将多个.TXT文本文件合并到一个excel表中 ...在excel中输入以下代码: Sub all_contents() Application.ScreenUpdating = False P = ActiveWorkbook.Path & "/" N = 1 For Each File In CreateObje...
  • 目前阶段:实现了在excel中单元格输入,单元格输出的函数编写,如a+b 现在想要尝试数组/矩阵输入后,经过一定的计算,以数值输出到单元格,如得到这个数组所有元素的总和之类的。 已知输入 #import "C:\\Program ...
  • EXCEL 中如何将数字转换成英文

    千次阅读 2008-04-09 16:21:00
    财务部提出在EXCEL中输入一个数字,可以自动转换成英文。这样可以节约他们很多重复劳动的时间。其实呢,这个问题不是我的职责范围拉,不过好像同事有EXCEL的问题都会来问问我的,我觉得帮助他们其实我自己也可以得到...
  • 在EXCEL中,如需要运行宏等命令,就需要将安全属性改为"低",但系统中是"中",或"高",有时直接在工具菜单的选项中更改,改后退出,又回到"中",或"高",而无法运行相关宏命令, 可用修改注册表方法进行修改:运行注册表程序, ...
  • 例如有这么一个需求,我们在Excel模板设置了条件格式,通过程序往里面输入数值。我们需要统计满足条件格式为红色的个数。代码大致如下 If temprng.FormatConditions.Count > 0 Then '如果有条件格式 '则查找...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 320
精华内容 128
关键字:

如何在excel中输入代码