在不使用VB 12年之后,我的一个朋友问我是否能够提供帮助,所以像个傻瓜一样,我同意提供帮助。在大多数情况下,我已经能够使用简单的VB自动执行过程。但是,我对最后一部分有些困惑,不确定是否有可能或实现该问题的最佳方法。
我的首要任务是复制一份报告,并按照用户输入的名称重命名该标签。
几个任务之后,我意识到我需要接受用户输入并将其插入公式中,然后将其放入单元格中。随着时间(每月),该公式将需要更改列。
以下是我到目前为止所做的事情,感谢您的帮助和投入。
sName
是用户定义的输入,我想我已经正确地将其声明为全局变量
sName
在SPVCLookup
中用作选项卡的名称(不起作用)
sName
在countif
中用作公式的一部分(不起作用)
' will copy SPC Report to new tab and ask user to name the tab
Dim sName As String
Sub CopyRename()
'Dim sName As String
Dim wks As Worksheet
Worksheets("SPC Report").Copy after:=Sheets(Worksheets.Count)
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter new worksheet name")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
Set wks = Nothing
End Sub
'------------------------
Sub CreateDA()
Dim ws As Worksheet
With ThisWorkbook
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = "Departmental Analysis"
End With
End Sub
'------------------------
Sub SPCVlookup()
'Sheets("sName").Select 'this needs to be user defined
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=VLOOKUP(D2,'Card Exchange'!$A$1:$V$218,6,FALSE)"
End Sub
Sub Countif()
Sheets("Departmental Analysis").Select
' i think i need a for loop to cycle through the range coloums
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=COUNTIFS('sname'!$A$1:$E$12104,A3)"
End Sub
答案 0 :(得分:0)
您在这里有两个问题。
Sub SPCVlookup()
Sheets("sName").Select 'selects the sheet called "sName"
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=VLOOKUP(D2,'Card Exchange'!$A$1:$V$218,6,FALSE)"
End Sub
此代码选择名为"sName"
的工作表。删除""
标记:
Sub SPCVlookup()
Sheets("sName").Select 'selects the sheet called "sName"
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=VLOOKUP(D2,'Card Exchange'!$A$1:$V$218,6,FALSE)"
End Sub
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=COUNTIFS('sname'!$A$1:$E$12104,A3)"
这有点棘手。您需要将sName
复制到公式中,但为此需要转义(以防sName
包含引号)。您可以通过将每个引号加倍来做到这一点:
Replace(sName, """", """"&"""")
所以...
Range(Range("E2"), Range("E2").End(xlDown)).Formula = "=COUNTIFS('" & Replace(sName, """", """"&"""") & "'!$A$1:$E$12104,A3)"
sName
更改时,这不会更新单元格;为此,您需要设置电子表格名称。 VBA和公式中的变量不共享。
答案 1 :(得分:-1)
这使数据在完成子或功能时得以保留。没有特殊字符。
import numpy as np
def create_baskets(num_baskets, max_basket_size, unique_items):
"""
Create list of baskets of variable length >= 3
Parameters
----------
num_baskets:
number of baskets (sub-lists)
max_basket_size: maximum basket size
Baskets will be of size range(3, max_basket_size)
unique_items:
number of unique items
Returns
-------
ret: list of "baskets", of randomly generated length
"""
baskets = []
for i in range(num_baskets):
n = np.random.choice(range(3, max_basket_size), 1)
basket = np.random.choice(range(0, unique_items), n, replace=False)
baskets.append(basket)
return baskets