Pass Array Elements To Private UserForm Module

Mar 28, 2008

I am trying to pass a string array into a form. I have added a member string array to the form, and a property to "Let" the array in the the member array.


Private sFormString() As String

Property Let FormString(value() As String)
sFormString = value
End Property

I can pass a string in using a procedure:


Sub StringArrayTest1()

Dim TestString() As String
Dim frmString As FString

but I cannot "modulate" the code, or else I get an internal error (error 51). I.e. this code doesn't work:



Sub StringArrayTest2Mod(TestString() As String, frmString As FString)

frmString.FormString = TestString

End Sub

Sub StringArrayTest2()

Dim TestString() As String
Dim frmString As FString

Set frmString = New FString
Redim TestString(1 To 2)
TestString(1) = "Cat"
TestString(2) = "Dog"

Call StringArrayTest2Mod(TestString, frmString)

End Sub

Does anyone know why this happens? Obviously, in the example code its not an issue, but the application I'm using this for is more complex, and some modulation here would be good.

View 9 Replies


ADVERTISEMENT

Reference Array Elements From All Module & Procedures

Mar 4, 2008

I am trying to figure out a method for calling the ith number in an array that was defined in another function. The mean function is working and the result is (1 x variables) array. Then, I want to use that array in the sdev function. I am having trouble pulling the ith number from the mean function. Also, is there a way to make variables constant so that they do not need to be declared for every function.

Sub stats()
periods = Range("periods")
variables = Range("variables")
Redim X(periods, variables) As Double
Redim uX(variables) As Double
Redim sdX(variables) As Double
'Load Data
For i = 1 To variables
For t = 1 To periods
X(t, i) = Cells(4 + t, 2 + i)
Next
Next
'Calculate Mean (run 'mean' function')
uX() = mean(X)................................

View 7 Replies View Related

Exit UserForm Private Module

Dec 15, 2006

I would like the users to be able to exit the whole module via double clicking the form. When the form is double clicked, the double click event appears and I am wondering how to put code into this procedure which exits the whole module.

View 3 Replies View Related

Pass Variable To UserForm Module

Dec 28, 2006

I have a macro that when it runs presents a form that gives the user an option to skip the calculations or continue. If they click Skip then it continues the 'Next CE' . My problem is I can't get the Boolean value to pass from the form to the macro. Here is what I have

The main macro

Sub Dividend_MF()
For Each sh In ActiveWorkbook.Worksheets( Array("G&I", "Growth"))
For Each ce In sh. Range("a5:a" & sh.Range("a65536").End(xlUp).Row)
If Not IsEmpty(ce) And Not (IsError(ce.Offset(0, 56))) Then
If ce.Offset(0, 56) = "X" Then

View 9 Replies View Related

Call A Private Sub From Another Module

Aug 13, 2009

Is it possible to call a Private Sub from another Module?

View 2 Replies View Related

Passing A Private Variable To Another Module

Nov 25, 2008

I have some code in which I need to pass the value of "j" from one module to another. "j" is declared in Sheet1 (Data) under the Microsoft Excel Objects.

View 8 Replies View Related

Passing Variable Value From Private Sub To Module

Aug 12, 2009

I am trying to pass a variable called "Filter" from a Private Sub to a Module but keeping coming up with a zero value in the Module. I tried to make the variable Global but that didn't seem to work.

Private Sub Code as follows:

View 3 Replies View Related

Pass Values Between Private & Public Procedures

Jan 1, 2008

how is the best method to link up forms to "talk" to my modules? (aka set variables inside my module script)

the way i understand it with my C++ background, it seems like separate forms and modules act much like private declarations do inside class calls.

I know that in C++ i can declare a friend class to grant access to communication between classes... and i'm wondering if such a procedure is possible in VBA as well...

or to break it down for those not familiar with C++, quite simply, is there a method of code i can implement to have different user forms and modules to talk to eachother? as it seems that any variable declaration is all inclusive to that one object.

The only way i can think of passing variables is by having my code create a worksheet, paste variables one by one into cells, bounce to the destination module, and import those declarations one by one through the cell contents, and remove the sheet after use...

I know i can do it that way, but i really dont want to as that is pretty darn sloppy, and a mickey mouse way to tie my program together.

View 3 Replies View Related

How To Call A Private Module.Macro From Within ThisWorkbook

Oct 17, 2003

When in a ThisWorkbook macro, I want to call a sub/macro in a Module. Usually you can just do a CALL MACRO1, and it will find it. But my MACRO1 is Private as I don't the users to be able to do a Tools, Macro, Macros and see it. So I don't want to make it a Public macro. So how do I call the private sub/macro from within ThisWorkbook?

Can I proceed the sub/macro's name with the name of the module, kind of like CALL MODULE1.MACRO1? Or do I have to make it public?

View 9 Replies View Related

Refer To Named Range In Private Module

Nov 10, 2006

I've got a problem referring to a named range in another worksheet.

Private Sub test()
Dim var_StartWeek As String ' 0740 This is the value I make a lookup for
Dim var StartWeekNr As Integer ' 40 and get this as a result

'*** Here is the named range in another worksheet (It doesn't work)
Set rng = ActiveWorkbook.Names("WeekData2").RefersToRange
var_StartWeekNr = WorksheetFunction.HLookup(var_StartWeek, Range("rng.Value"), 4) ' I'm doing something wrong here...

'*** If I have the named range in the same worksheeet it works fine
'var_StartWeekNr = WorksheetFunction.HLookup(var_StartWeek, ActiveSheet.Range("WeekData"), 4)

View 3 Replies View Related

Run Macro That Resides In A Private Sheet Module

Mar 26, 2008

I have a sheet that has a macro on it, I would like to run that macro programaticaly but Im not able to call it using Call mymacro type of code. The code that calls the macro resides in a module and the macro is in a sheet. Obviously they are not talking, is there a way to run it remotely without moving the macro into the module?

View 9 Replies View Related

Access Private Module Of The Workbook. 2007

May 15, 2008

I want to write some code that runs everytime the workbook is initialized. I found out that the code should be placed in the following "Private Sub":

Private Sub Workbook_Open()
'My code
End Sub

I know that this code should be placed in the Private Module of the Workbook! I just can not find where is the Private Module of the Workbook in Excel 2007... =/

View 3 Replies View Related

How To Delete Another Excel Private Module Of Workbook Object

Jul 9, 2013

How to delete another excel private module of the Workbook Object (ThisWorkbook) VBA codes of the workshook event.

This code to run from my PERSONAL.XLSB
Sub Macro1()
Windows("Book1.xls").Activate
ActiveWorkbook.Vbproject

Don't know what other codes I need to put after this
End Sub

This code to be deleted via Macro1 above code
Private Sub Workbook_Open()
Call CreateMenu
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub

View 2 Replies View Related

Macro Referencing Named Range In Worksheets Private Module

Sep 12, 2006

I'm having trouble calling a defined range within a VLOOKUP function in VBA. If the named range is located on the same sheet within which you are running the macro, everything runs fine and all is well in the world.

However, after I relocated the range to a separate sheet (a 'SourceData' sheet to tidy up the user interface sheet), I was getting the following error message:

Method 'Range' of object '_Worksheet' failed

The name is correctly defined - Range("DaysInYear").Select still picks up the correct selection - it's just the VLOOKUP will no longer function correctly.

Here is part of the macro's
For I = 1 To NumberOfDays
Range("A1").Value = DateAdd("d", -(I - 1), EndDate)
If Application.VLookup(Range("A1"), Range("DaysInYear"), 3, False) = 1 Then
If Application.VLookup(Range("A1"), Range("DaysInYear"), 4, False) = 0 Then
ActualNumber = ActualNumber + 1
End If
End If
Next I

View 9 Replies View Related

Return Array Elements From 2D Array

Feb 11, 2008

I'm trying to use an array to carry out string function on a range of excel cells.

Here is the code I am using

Dim arrXl As Variant

arrXl = ws.Range("F1:F" & ws.Range("D1").End(xlDown).Row)

For i = LBound(arrXl) To UBound(arrXl)
MsgBox (LBound(arrXl))
'If 1st char is different from 3rd char then remove all of string after 1st char

If Left(arrXl(i), 1) <> Mid(arrXl(i), 3, 1) Then
arrXl(i) = Left(arrXl(i), 1)
End If
'If 1st char is different from 7th char then delete string after 5th char
If Left(arrXl(i), 1) <> Mid(arrXl(i), 7, 1) Then
arrXl(i) = Left(arrXl(i), 5)
End If

The lbound function returns the value of 1 as the lower bound, I do not have "Option base 1" set so I was expecting the lbound value to be 0. The first 2 cells in the F column are blank so this may have something to do with it, I am unsure if cells in excel can be null if they can be null one cell may be null and the other may be a zero length string but I am unsure about this.

The ubound function returns a value of 487.

The code breaks when I try to access an element in the array so it breaks on the line:

If Left(arrXl(i), 1) <> Mid(arrXl(i), 3, 1) Then

and returns the "Subscript out of range" error message.

View 5 Replies View Related

Empty The All Elements In An Array

Dec 11, 2008

If I have say several hundred elements stored in an indexed array and I want to clear them each time the sub or function holding them is called, is there a way to erase the contents of the entire array without having to loop through each element.
Something like array().clear? Note that each time the sub is called, they are also redimed to some reference.

View 6 Replies View Related

Length Of Array With 100 Elements Possible?

Dec 23, 2008

I have a STRING array which is dimensioned with 100 elements possible. What i want to know is how to determine the "length" (not sure if this is the right word) of the array. For example: Suppose i have 10 strings in the array. Is there a command to determine that there are only 10 elements in the 100 possilble array?

View 11 Replies View Related

Add/Retrieve Elements From An Array

Apr 26, 2009

I can't seem to get my head around the simple issue of assigning a range of cell data to an array! Here is a snippet of what I have, maybe you can see the flaw:

View 8 Replies View Related

Count Elements In Array

Sep 8, 2009

I was wondering if there is a way to have the elements of an array counted. I have something like this:

View 6 Replies View Related

VBA - How To List All Elements In Array

Jan 21, 2012

I have a question regarding arrays. If I have too many elements in a 1D array(let's say 1000), how can I list all of them in a msg box (separated by comma)?

View 2 Replies View Related

Retrieving Elements Of Array

May 14, 2013

I am facing the some issue while tried to display the data from array. Below is code I have to tried to display the data from array.

Scenario: I have assigned the few values in my excel to an array and tried to display the data stored in array

Sub Main()
Dim Rows_Array() As Variant
Dim i As Integer,
Sheets("EmployeeWise").Select
Rows_Array = Range("C6:C" & Range("C65536").End(xlUp).Row).Value
For i = 1 To UBound(Rows_Array())
MsgBox Rows_Array(i)
Next
End Sub

View 1 Replies View Related

Rank Elements Of 2D Array

Sep 1, 2007

I am trying to present a 10X10 Matrix Range (A1:J10) full with UNIQUE INTEGER random numbers. I thought to use an Single Dimension Array (100 deep) and fill it with the Rnd() Function.

Then, I thought to check the RANK of each element of that Array and transfer it to 100 cells (10X10) in the Sheet (assume A21:J30) with the help of 2 nested loops.

My problem is: How to find the Rank of each element within ARRAY1. Is there a way to refer to an Array as to a Range in a Worksheet. (I do not want to transfer 100 values from the Array to the Sheet - I rather prefer to check the Rank WITHIN(!) the Array).

Option Base 1

Sub MiKe()
Set AWF = Application.WorksheetFunction
H = 10
V = 10
Redim Array1(H * V)
For CL = 1 To H * V
Array1(CL) = Rnd()
Next
For HC = 1 To H
For VC = 1 To V.........................

View 2 Replies View Related

Join Array With Text Elements?

Jun 30, 2014

Join an array with Text elements to create a string that can be Evaluated

So for instance if I have Array("A", "B", "C") and I want to evaluate("=({" & Join(array, ",") & "})="A)"). Is there any way to do this without having to loop or push to a Named array first? I'll even take this evaluate thing if I can do it with text and numbers

View 6 Replies View Related

Finding Array Elements In Worksheet?

Mar 25, 2014

I've defined a string array and would want to use it as a basis for a vlookup. Is it possible to find the elements of the array directly in the worksheet ?So far I've got :

[Code] .....

View 2 Replies View Related

Filling All Elements Of A Two Dimensional Array?

Dec 3, 2009

Filling all elements of a two dimensional array?. I know that I could write something like:

View 3 Replies View Related

How Many Elements Are Not Empty Within Variant Array

Jul 19, 2014

I want to test how many elements are not empty within a variant array.

For example for arrays Arr1 and Arr2 below the answers would be:
- for Arr1 not empty elements=1
- for Arr2 not empty elements=0

Arr1(0)=empty
Arr1(1)=2
Arr1(2)=empty

Arr2(0)=empty
Arr2(1)=empty
Arr2(2)=empty

I've tried with function COUNTA inside VBA but counts even the empty values:

Code:
NotEmptyCells = Application.WorksheetFunction.CountA(Arr1)

Is there another function to count this from an array or alternative way?

View 9 Replies View Related

Convert Range Fields To Array Elements

May 2, 2013

I have a variable that gets set to an address range:

Code:
TAG_RANGE = Sheets(BAL_SHT_TAB_NAME).Range("A1", Sheets(BAL_SHT_TAB_NAME).Cells(Rows.Count, Range("A1").Column).End(xlUp)).Address

In the first loop that executes this command TAG_RANGE gets set to $A$1:$A$39

I want to loop through the values in that range and run tests against them. Is there a function that will take the values in the address range an convert them into an array so that I can use something like this:

Code:
For Counter = LBound(TAG_RANGE_ARRAY) To UBound(TAG_RANGE_ARRAY)

[run tests]

Next

Or is there someother direct way to do this other than creating a loop that fills the array element by element

View 5 Replies View Related

VBA - Searching For Elements Of Array In Active Sheet

Aug 5, 2013

I'm trying to write a macro which will find members of an array on a sheet, highlight the column and then change the format of the column, what I have at the moment is:

Dim datearray(1 To 3) As String

datearray(1) = "Date1"
datearray(2) = "Date2"
datearray(3) = "Date3"

For x = LBound(datearray) To UBound(datearray)
Cells.Find(What:=x).Activate
ActiveCell.EntireColumn.Select
Selection.NumberFormat = "m/d/yyyy"
Next x

End Sub

The problem is, when I "F8" my way through the code, it doesn't seem to be finding the members of the array in the sheet.

View 3 Replies View Related

Converting Cell Contents To Array Elements

Mar 23, 2008

I have a cell that contains parts that are comma separated. I want to assign each of these parts to an element in an array so I can process them using a loop function.

Example Cell A1 = t4567, g8905, z3030
partArray = (t4567, g8905, z3030)

Is there a method or function i can use to achieve this?

View 9 Replies View Related

Count Number Of Used Elements In Array Variable

Apr 4, 2009

array variables:

How can I count the number of elements of a particular dimension of an array variable that have actually been filled with items/values?

For example, the array variable in this procedure has two dimensions. Dimension 1 has three elements, and dimension 2 has 5 elements. I then add values to some, but not all the defined elements of dimensions. How can I count, for each dimension, the number of elements that have values rather than are empty?

Option Base 1

Sub test()
Dim ExampleArray(3, 5)

ExampleArray(1, 1) = 3
ExampleArray(1, 2) = 4
ExampleArray(1, 3) = 2
ExampleArray(1, 4) = 6
ExampleArray(2, 1) = 5
ExampleArray(2, 2) = 9

End Sub

View 9 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved