出于某种原因,我可以让消息框告诉我用户名是什么,但它在save as path中的工作方式不同.我收到"无法找到路径"错误.
不知道如何解决这个问题.我也看过参考文献,看起来它们是正确的.
如果我更改路径以包括每台计算机的实际用户名,宏可以正常工作.但我需要这个是任何计算机/用户的全局宏.任何帮助将不胜感激.
这是我有的:
Sub SAVEAS_2010()
'
' SAVEAS_2010 Macro
MsgBox Environ("username")
Dim UserName As String
UserName = Environ("username")
ChDir "C:\Users\" & UserName & "\Dropbox\Open Machine Schedule"
ActiveWorkbook.SaveAs FileName:= _
"C:\Users\" & UserName & "\Dropbox\Open Machine Schedule\Open Machine Schedule - Current_2.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
Run Code Online (Sandbox Code Playgroud) 我有这个代码。
此代码转换为 xlsm 文件。
我想转换为 xlsx 文件。
如何?
我尝试通过改变
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ""), ThisWorkbook.FileFormatTO
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ".xlsx")
Run Code Online (Sandbox Code Playgroud)
但没有成功。
Private Sub CommandButton2_Click()
Dim CSVfolder As String
Dim XlsFolder As String
Dim fname As String
Dim wBook As Workbook
CSVfolder = "C:\csv\"
XlsFolder = "C:\Charts\"
fname = Dir(CSVfolder & "*.csv")
Do While fname <> ""
Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:=",")
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ""), ThisWorkbook.FileFormat
wBook.Close False
fname = Dir
Loop
End …Run Code Online (Sandbox Code Playgroud) 我使用这个公式得到当月的前三个字母,首字母是资本(即1月,2月,3月,4月,...):
=UPPER(LEFT(TEXT(B1;"mmm");1)) & MID(TEXT(B1;"mmm");2;2)
Run Code Online (Sandbox Code Playgroud)
但它用我自己的语言给我结果,我想用英语.
我的Excel和所有Office都是英文的,我只有法语区域设置(我更喜欢保留,或者我不想在每次使用这种功能时都切换它们).
有没有办法改变
TEXT函数输出的语言?
我需要通过 python 运行 Excel 宏,但总是出现以下错误:
result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146788248), None)
Run Code Online (Sandbox Code Playgroud)
在Excel中,它给出了以下错误:
运行时错误 1004:无法运行宏“。宏在此工作簿中可能不可用,或者可能禁用了所有宏。
我的代码如下:
xl=win32.Dispatch("Excel.Application")
wb=xl.Workbooks.Open(Filename="Path+MyExcelFile.xlsm", ReadOnly=1)
xl.Visible = True
time.sleep(1)
ws=wb.Worksheets("Sheet1")
ws.Cells(4,2).Value='Value1'
ws.Cells(5,2).Value='Value2'
ws.Cells(1,8).Value='Bool'
time.sleep(10)
xl.Application.Run("MyExcelFile.xlsm!macroname")
result = ws.Cells(3,10).Value
print result
xl.Application.Quit()
del xl
Run Code Online (Sandbox Code Playgroud)
我通过宏安全启用了所有宏,并且没有为特定工作表定义宏。当然,如果我在 Excel 中手动运行宏,它就可以正常工作
多年来我没有编码,所以尽力传达我的目标.
我有一个主表单,其中包含许多项目的列表(在主服务器中列出了他们自己的单元格),它们同样有自己的编号表.此Master具有与行中所有其他项目相关的信息,在相应单元格下选择时,将该行信息复制到适用项目表中的下一个可用行.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextrow As Long, lastrow As Long, i As Long
nextrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet5.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet4.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet6.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet7.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet8.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet9.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet10.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet11.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet12.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = …Run Code Online (Sandbox Code Playgroud) 我试图将此文本转换为数字:
我尝试了不同的公式,但是Excel无法识别该格式。但是,使用下面的代码只能转换前三个数字,并删除其余的数字。
Sub ConvertTextNumberToNumber()
For Each WS In Sheets
On Error Resume Next
For Each r In WS.UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then r.Value = Val(r.Value)
Next r
Next WS
End Sub
Run Code Online (Sandbox Code Playgroud)
结果看起来像这样
有没有人在不删除任何数字的情况下对此进行轻松修复?
在 Python 中,我可以使用 zip 函数一次遍历多个列表。我将如何在 Excel 中的 VBA 中的宏中执行此操作?
伪代码
Set ones = Worksheets("Insertion").Range("D2:D673")
Set twos = Worksheets("Insertion").Range("A2:A673")
Set threes = Worksheets("Insertion").Range("B2:B673")
Set fours = Worksheets("Insertion").Range("C2:C673")
For Each one, two, three, four in zip(ones.Cells, twos.Cells, threes.Cells, fours.Cells)
Debug.Print(one.Text & two.Text & three.Text & four.Text)
Next one
Run Code Online (Sandbox Code Playgroud) 我试图运行一个相对简单的循环来从列表中提取我不想要的值.
除了我的"Not"语句之外,以下所有内容都正常工作,不会产生错误...
它似乎根本没有做任何事情.
Set myRange = Range("A49:A150")
For Each myCell In myRange
If myCell Like "*msn.com*" Or _
myCell Like "*messaging.microsoft.com*" Or _
Not myCell Like "*.com*" Then
myCell.Delete
End If
Next myCell
Run Code Online (Sandbox Code Playgroud)
我相当肯定我在这里有一个简单的错误,但我一直无法找到它.
我需要列出工作表上的大量旧ActiveX命令按钮的标题.
我如何参考该系列?
伪代码:
For each btn in Activesheet.CommandButtons
Debug.Print btn.Caption
Next btn
Run Code Online (Sandbox Code Playgroud) 我正在使用npm mysql 包,使用以下命令创建到我的mysql数据库的连接池dbHandler.js:
var mysql = require("mysql");
var pool = mysql.createPool({
connectionLimit : 10,
host: "path.to.host",
user: "username",
password: "password",
database: "dbname",
debug: false
});
exports.pool = pool;
Run Code Online (Sandbox Code Playgroud)
然后我在里面调用它routesHandler.js来处理我的 SQL 请求:
var mysql = require("mysql");
var pool = require("./dbHandler");
exports.login = function(req, res) {
var email = req.body.email;
pool.query('SELECT * FROM users WHERE users.email = ?', [email], function(
error,
results,
fields
) {
if (error) {
res.send({
code: 400,
failed: "Error ocurred" …Run Code Online (Sandbox Code Playgroud) excel ×8
vba ×8
excel-vba ×4
python ×2
excel-2010 ×1
express ×1
if-statement ×1
javascript ×1
loops ×1
mysql ×1
node.js ×1
username ×1